home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 7 / Eagles_Nest_Mac_Collection_Disc_7.TOAST / General Communication / DialogerPro / Dialoger Professional 1.0b1 / DialogMaker / background_2662.xml next >
Extensible Markup Language  |  1992-05-13  |  144KB  |  1,422 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE background PUBLIC "-//Apple, Inc.//DTD background V 2.0//EN" "" >
  3. <background>
  4.     <id>2662</id>
  5.     <filler1>0</filler1>
  6.     <bitmap>BMAP_3102.pbm</bitmap>
  7.     <cantDelete> <false /> </cantDelete>
  8.     <showPict> <true /> </showPict>
  9.     <dontSearch> <false /> </dontSearch>
  10.     <link rel="stylesheet" type="text/css" href="stylesheet_6778.css" />
  11.     <part>
  12.         <id>55</id>
  13.         <type>field</type>
  14.         <visible> <false /> </visible>
  15.         <dontWrap> <false /> </dontWrap>
  16.         <dontSearch> <false /> </dontSearch>
  17.         <sharedText> <false /> </sharedText>
  18.         <fixedLineHeight> <true /> </fixedLineHeight>
  19.         <autoTab> <false /> </autoTab>
  20.         <lockText> <true /> </lockText>
  21.         <rect>
  22.             <left>10</left>
  23.             <top>24</top>
  24.             <right>506</right>
  25.             <bottom>326</bottom>
  26.         </rect>
  27.         <style>rectangle</style>
  28.         <autoSelect> <false /> </autoSelect>
  29.         <showLines> <false /> </showLines>
  30.         <wideMargins> <false /> </wideMargins>
  31.         <multipleLines> <false /> </multipleLines>
  32.         <reservedFamily> 0 </reservedFamily>
  33.         <titleWidth>0</titleWidth>
  34.         <icon>0</icon>
  35.         <textAlign>left</textAlign>
  36.         <font>Geneva</font>
  37.         <textSize>12</textSize>
  38.         <textStyle>plain</textStyle>
  39.         <textHeight>16</textHeight>
  40.         <name>Outline</name>
  41.         <script></script>
  42.     </part>
  43.     <part>
  44.         <id>50</id>
  45.         <type>button</type>
  46.         <visible> <false /> </visible>
  47.         <reserved5> 0 </reserved5>
  48.         <reserved4> 0 </reserved4>
  49.         <reserved3> 0 </reserved3>
  50.         <reserved2> 0 </reserved2>
  51.         <reserved1> 0 </reserved1>
  52.         <enabled> <true /> </enabled>
  53.         <rect>
  54.             <left>459</left>
  55.             <top>182</top>
  56.             <right>509</right>
  57.             <bottom>200</bottom>
  58.         </rect>
  59.         <style>rectangle</style>
  60.         <showName> <true /> </showName>
  61.         <highlight> <false /> </highlight>
  62.         <autoHighlight> <true /> </autoHighlight>
  63.         <sharedHighlight> <true /> </sharedHighlight>
  64.         <family>0</family>
  65.         <titleWidth>0</titleWidth>
  66.         <icon>0</icon>
  67.         <textAlign>center</textAlign>
  68.         <font>Chicago</font>
  69.         <textSize>12</textSize>
  70.         <textStyle>plain</textStyle>
  71.         <name>Import</name>
  72.         <script>on mouseDownend mouseDownon mouseUpmakeCardend mouseUpon makeCardglobal dList,fName, express, dirtyif number of cd btns > 0 or number of cd flds > 0 thenget alert("Note", "Remove all existing items from this card or make a new card?"¬¨, "New Card", "Remove", "Cancel")if it is "Cancel" then exit makeCarddoMenu "New Card"lock screenif it is "Remove" thenpush cdgo backdoMenu "Delete Card"pop cdend ifunlock screenend ifput return into CRput resSortedList(stackfileName(),"DLOG") into dListput Dialoger("‚Ä¢dialogList" & CR & "on makeHit"¬¨, "4‚óäuserBox Gray,None,Copy"¬¨, "5‚óäuserList Monaco,10,1" & CR & dList¬¨, "6‚óäuserText"& CR &"Dialogs in  ‚Äú"&shortFileName(stackFileName())&"‚Äù"¬¨ --Text at (18,8,186,41)) into dResultcheckResult dResultif fName is empty then put stackFileName() into fNameif line 1 of dResult is not "OK" thenif bg fld "DialogName" is empty then doMenu "delete card"exit makeCardend ifif line 5 of dResult is empty then exit makeCardput char 2 to 9999 of word 1 of line (line 5 of dResult) of dList into dIDif dID is empty then exit makeCardset cursor to watchput empty into jListput dBreaker(fName,dID) into piecesif first word of pieces is "Error:" then boom piecesset rect of bg fld "dialogRect" to (item 2 to 5 of pieces)put item 6 of pieces into line 2 of bg fld "DialogRect"put item 7 of pieces into line 3 of bg fld "DialogRect"set loc of bg fld "dialogRect" to 229,185put item 8 to 99 of line 1 of pieces into bg fld "dialogName"put true into expressrepeat with l = 2 to number of lines in piecesput line l of pieces into anItemget makeObj(anItem)put it & return after jListend repeatdelete last char of jListput jList into bg fld "objList"put empty into iListrepeat with l = 1 to number of lines in jListset cursor to busyput niceObj(line l of jList) & return after iListend repeatdelete last char of iListput iList into bg fld "itemList"put false into expresschoose browse toolput false into expressput true into dirty--visitHomeend makeCardfunction makeObj itemSpecglobal fNameput item 1 of itemSpec into iTypeset editbkgnd to falseif iType is in "btn,chk,rad,cntl,icon,pict" thendoMenu "New Button"put "cd btn id" && (id of cd btn (number of cd btns)) into objset rect of obj to Dialog2CardRect(item 2 to 5 of itemSpec)if iType is "rad" thenset style of obj to RadioButtonset name of obj to item 7 of itemSpecelse if iType is "chk" thenset style of obj to Checkboxset name of obj to item 7 of itemSpecelse if iType is "btn" thenset style of obj to RoundRectset name of obj to item 7 of itemSpecelse if iType is "icon" thenresCopyQuick fName, stackFileName(),"ICON",(item 7 of itemSpec)if first word of the result is "Error:" thenget alert("Caution", "Unable to import an icon:"¬¨&&(word 2 to 100 of the result), "Continue")else if the result is not empty then put the result into item 7 of itemSpecset style of obj to opaqueset icon of obj to item 7 of itemSpecset name of obj to item 7 of itemSpecset showName of obj to falseelse if iType is "pict" thenresCopyQuick fName, stackFileName(),"PICT",(item 7 of itemSpec)if first word of the result is "Error:" thenget alert("Caution", "Unable to import a picture:"¬¨&&(word 2 to 100 of the result), "Continue")else if the result is not empty then put the result into item 7 of itemSpecset style of obj to rectset name of obj to item 7 of itemSpecset showName of obj to falseset script of obj to "on mouseUp"&return&"showPict"¬¨&return&"end mouseUp"&return&return&"on mouseDown"&return&"showPict"¬¨&return&"pass mouseDown"&return&"end mouseDown"else if iType is "cntl" thenresCopyQuick fName, stackFileName(),"CNTL",(item 7 of itemSpec)if first word of the result is "Error:" thenget alert("Caution", "Unable to import a control:"¬¨&&(word 2 to 100 of the result), "Continue")else if the result is not emptythen put the result into item 7 of itemSpecset style of obj to rectPutIntoScript obj,"id",item 7 of itemSpecPutIntoScript obj,"init",item 8 of itemSpecPutIntoScript obj,"min",item 9 of itemSpecPutIntoScript obj,"max",item 10 of itemSpecPutIntoScript obj,"proc",item 11 of itemSpecset name of obj to item 12 to 99 of itemSpecset showName of obj to falseend ifelsedoMenu "New Field"put "cd fld id" && (id of cd fld (number of cd flds)) into objset rect of obj to Dialog2CardRect(item 2 to 5 of itemSpec)set lockText of obj to trueif iType is "edit" thenset style of obj to rectset textfont of obj to chicagoset textHeight of obj to 18subtract 3 from item 2 of itemSpecsubtract 3 from item 3 of itemSpecadd 3 to item 4 of itemSpecadd 3 to item 5 of itemSpecset rect of obj to Dialog2CardRect(item 2 to 5 of itemSpec)do "put item 7 to 999 of itemSpec into"&&objelse if iType is "stat" thenset style of obj to opaqueset textFont of obj to Chicagoset textHeight of obj to 14do "put item 7 to 999 of itemSpec into"&&objelse if iType is "user" thenget item 7 of itemSpecif it is empty then get uTypeChoice(obj)if it is "box" thenset style of obj to rectselect objrepeat (number of cd flds + number of cd btns) timesdoMenu "send farther"end repeatelse if it is "list"then set style of obj to scrollingelse if it is "text" thenput "stat" into iTypeset style of obj to opaqueset textFont of obj to Chicagoset textHeight of obj to 16do "put userText into"&&objelse if it is "pop"then set style of obj to shadowPutIntoScript obj,"uType",itend ifend ifPutIntoScript obj,"iType",iTypePutIntoScript obj,"getsHit",(item 6 of itemSpec)return objend makeObjfunction uTypeChoice oglobal objput o into objput Dialoger("‚Ä¢Choice" & return & "on ChoiceHit"¬¨, "5‚óätrue"¬¨ --Radio Button "Box", "8‚óäuserBox Black,None,Copy"¬¨ --Box (Black pen, None fill)) into dResultif word 1 of dResult is "error:" then boom dResultif line 4 of dResult is true then return "text"else if line 5 of dResult is true then return "box"else if line 6 of dResult is true then return "list"else if line 7 of dResult is true then return "pop"end uTypeChoice-- HelpTextImport (Dialog)This button allows you to import an existing dialog into Hypercard for editing. When clicked, you will be presented with a list of dialogs from which to pick. This list is composed of all the dialogs in this stack. To select a dialog from another stack (or any other file, in fact), click on the Open‚Ķ button and then select the stack. Once you have selected the desired dialog, click OK.The items in the dialog will be converted into card objects (buttons and fields) and placed in the correct positions on the card.Whenever a user item is encountered, the creation process will pause and you will be asked to identify which kind of item it should be converted to (userBox, userText, userPop, userList). You will not be able to change this choice (short of deleting the objects and then creating another) so make sure you are satisfied with your selection.By the way, you can tell which item is being affected by your choice by looking for the item which changes style when the various options are selected. (You can move the dialog out of the way by dragging it).</script>
  73.     </part>
  74.     <part>
  75.         <id>4</id>
  76.         <type>button</type>
  77.         <visible> <false /> </visible>
  78.         <reserved5> 0 </reserved5>
  79.         <reserved4> 0 </reserved4>
  80.         <reserved3> 0 </reserved3>
  81.         <reserved2> 0 </reserved2>
  82.         <reserved1> 0 </reserved1>
  83.         <enabled> <true /> </enabled>
  84.         <rect>
  85.             <left>457</left>
  86.             <top>21</top>
  87.             <right>483</right>
  88.             <bottom>46</bottom>
  89.         </rect>
  90.         <style>rectangle</style>
  91.         <showName> <false /> </showName>
  92.         <highlight> <false /> </highlight>
  93.         <autoHighlight> <true /> </autoHighlight>
  94.         <sharedHighlight> <true /> </sharedHighlight>
  95.         <family>0</family>
  96.         <titleWidth>0</titleWidth>
  97.         <icon>31620</icon>
  98.         <textAlign>center</textAlign>
  99.         <font>Chicago</font>
  100.         <textSize>12</textSize>
  101.         <textStyle>plain</textStyle>
  102.         <name>Push Button</name>
  103.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifput preAssignedLabel("true") into btnLblput false into expresslock screenset cursor to watchset editBkgnd to falsedoMenu "New Button"put number of cd btns into btnNoput "cd btn id"&&(id of cd btn btnNo) into objputIntoScript obj, "iType", "btn"putIntoScript obj, "getsHit", "true"set style of obj to roundRectset name of obj to btnLblset width of obj to 80set height of obj to 18set loc of obj to loc of bg fld "dialogRect"choose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextPush Button ToolThis button allows you to create a new push button for the dialog box that you are designing. You will be asked for the name of the button which will appear as a title in the middle of the button.Double-click on button to edit it; use Position button in dialog to precisely position the button with keyboard.Note: HyperCard displays push buttons in a slightly different manner than they appear in a dialog. This is normal.</script>
  104.     </part>
  105.     <part>
  106.         <id>5</id>
  107.         <type>button</type>
  108.         <visible> <false /> </visible>
  109.         <reserved5> 0 </reserved5>
  110.         <reserved4> 0 </reserved4>
  111.         <reserved3> 0 </reserved3>
  112.         <reserved2> 0 </reserved2>
  113.         <reserved1> 0 </reserved1>
  114.         <enabled> <true /> </enabled>
  115.         <rect>
  116.             <left>485</left>
  117.             <top>47</top>
  118.             <right>511</right>
  119.             <bottom>72</bottom>
  120.         </rect>
  121.         <style>rectangle</style>
  122.         <showName> <false /> </showName>
  123.         <highlight> <false /> </highlight>
  124.         <autoHighlight> <true /> </autoHighlight>
  125.         <sharedHighlight> <true /> </sharedHighlight>
  126.         <family>0</family>
  127.         <titleWidth>0</titleWidth>
  128.         <icon>18091</icon>
  129.         <textAlign>center</textAlign>
  130.         <font>Chicago</font>
  131.         <textSize>12</textSize>
  132.         <textStyle>plain</textStyle>
  133.         <name>Checkbox</name>
  134.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Button"put number of cd btns into btnNoput "cd btn id"&&(id of cd btn btnNo) into objputIntoScript obj, "iType", "chk"putIntoScript obj, "getsHit", "true"set style of obj to checkboxset name of obj to ""set width of obj to 80set height of obj to 16set loc of obj to loc of bg fld "dialogRect"choose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextCheck Button ToolThis button allows you to create a new checkbox for the dialog box that you are designing. You will be asked for the name of the button which will appear as the title of the button.Double-click on button to edit it; use Position button in dialog to precisely position the button with keyboard.Notice that the right side of the button is expanded automatically when you change the button's name ‚Äî if you don't want this, simply alter the button's dimensions yourself (if the buttons width has been altered by you, Dialog Maker will no longer adjsut it itself).</script>
  135.     </part>
  136.     <part>
  137.         <id>6</id>
  138.         <type>button</type>
  139.         <visible> <false /> </visible>
  140.         <reserved5> 0 </reserved5>
  141.         <reserved4> 0 </reserved4>
  142.         <reserved3> 0 </reserved3>
  143.         <reserved2> 0 </reserved2>
  144.         <reserved1> 0 </reserved1>
  145.         <enabled> <true /> </enabled>
  146.         <rect>
  147.             <left>457</left>
  148.             <top>47</top>
  149.             <right>483</right>
  150.             <bottom>72</bottom>
  151.         </rect>
  152.         <style>rectangle</style>
  153.         <showName> <false /> </showName>
  154.         <highlight> <false /> </highlight>
  155.         <autoHighlight> <true /> </autoHighlight>
  156.         <sharedHighlight> <true /> </sharedHighlight>
  157.         <family>0</family>
  158.         <titleWidth>0</titleWidth>
  159.         <icon>31475</icon>
  160.         <textAlign>center</textAlign>
  161.         <font>Chicago</font>
  162.         <textSize>12</textSize>
  163.         <textStyle>plain</textStyle>
  164.         <name>Radio Button</name>
  165.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Button"put number of cd btns into btnNoput "cd btn id"&&(id of cd btn btnNo) into objputIntoScript obj, "iType", "rad"putIntoScript obj, "getsHit", "true"set style of obj to radioButtonset name of obj to ""set width of obj to 80set height of obj to 16set loc of obj to loc of bg fld "dialogRect"choose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextRadio Button ToolThis button allows you to create a new radio button for the dialog box that you are designing. You will be asked for the name of the button which will appear as the title of the button.Double-click on button to edit it; use Position button in dialog to precisely position the button with keyboard.Notice that the right side of the button is expanded automatically when you change the button's name ‚Äî if you don't want this, simply alter the button's dimensions yourself (if the buttons width has beenaltered by you, Dialog Maker will no longer adjsut it itself).Radio buttons are usually grouped together such that only one may be selected at a time. Dialoger groups radio buttons that are next to each other in the item list. To avoid having to re-order items later, create all the radio buttons in a group at once.</script>
  166.     </part>
  167.     <part>
  168.         <id>7</id>
  169.         <type>button</type>
  170.         <visible> <false /> </visible>
  171.         <reserved5> 0 </reserved5>
  172.         <reserved4> 0 </reserved4>
  173.         <reserved3> 0 </reserved3>
  174.         <reserved2> 0 </reserved2>
  175.         <reserved1> 0 </reserved1>
  176.         <enabled> <true /> </enabled>
  177.         <rect>
  178.             <left>485</left>
  179.             <top>73</top>
  180.             <right>511</right>
  181.             <bottom>98</bottom>
  182.         </rect>
  183.         <style>rectangle</style>
  184.         <showName> <false /> </showName>
  185.         <highlight> <false /> </highlight>
  186.         <autoHighlight> <true /> </autoHighlight>
  187.         <sharedHighlight> <true /> </sharedHighlight>
  188.         <family>0</family>
  189.         <titleWidth>0</titleWidth>
  190.         <icon>23281</icon>
  191.         <textAlign>center</textAlign>
  192.         <font>Chicago</font>
  193.         <textSize>12</textSize>
  194.         <textStyle>plain</textStyle>
  195.         <name>Static Text</name>
  196.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Field"put number of cd flds into fldNoput "cd fld id"&&(id of cd fld fldNo) into objputIntoScript obj, "iType", "stat"putIntoScript obj, "getsHit", "false"set style of obj to opaqueset name of obj to ""set width of obj to 120set height of obj to 18set loc of obj to loc of bg fld "dialogRect"set textFont of obj to Chicagoset textHeight of obj to 16set lockText of obj to truechoose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextStatic Text ToolThis button allows you to create a new static text area for the dialog box that you are designing. You will be asked for the text which will appear when the dialog is first presented to the user.Notice that the right side of the item is expanded automatically when you alter the text it contains ‚Äî if you don't want this, simply alter the item‚Äôs dimensions yourself (if the item‚Äôs width has been altered by you, Dialog Maker will no longer adjust it itself).In addition to the built-in static text facilities of the Dialog Manager, Dialoger also supports other styles of static text items. While not as extensive as HyperCard's they offer a valuable addition to the Dialog Manager's own.Similar to HyperCard, Dialoger supports various styles of static text items. These are discussed below:Plain is a normal static text item. It uses the facilities built into the Dialog Manger and is the most straight-forward. It does have a limitation: the text always appears in the default font for the dialog ‚Äî normally Chicago.Opaque and Scrolling support text of any style to be entered. Using the Text button, you may control the font, size, style ‚Äî even alignment and lineheight of the text entered into the item. While more flexible than Plain text, there is a slight penalty in performance and memory for these features.Also, since these styles are an invention of Dialoger, they do not support the replacement text feature of Plain static text (ie ^0, ‚Ķ, ^3).</script>
  197.     </part>
  198.     <part>
  199.         <id>8</id>
  200.         <type>button</type>
  201.         <visible> <false /> </visible>
  202.         <reserved5> 0 </reserved5>
  203.         <reserved4> 0 </reserved4>
  204.         <reserved3> 0 </reserved3>
  205.         <reserved2> 0 </reserved2>
  206.         <reserved1> 0 </reserved1>
  207.         <enabled> <true /> </enabled>
  208.         <rect>
  209.             <left>457</left>
  210.             <top>73</top>
  211.             <right>483</right>
  212.             <bottom>98</bottom>
  213.         </rect>
  214.         <style>rectangle</style>
  215.         <showName> <false /> </showName>
  216.         <highlight> <false /> </highlight>
  217.         <autoHighlight> <true /> </autoHighlight>
  218.         <sharedHighlight> <true /> </sharedHighlight>
  219.         <family>0</family>
  220.         <titleWidth>0</titleWidth>
  221.         <icon>23109</icon>
  222.         <textAlign>center</textAlign>
  223.         <font>Chicago</font>
  224.         <textSize>12</textSize>
  225.         <textStyle>plain</textStyle>
  226.         <name>Editable Text</name>
  227.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Field"put number of cd flds into fldNoput "cd fld id"&&(id of cd fld fldNo) into objputIntoScript obj, "iType", "edit"putIntoScript obj, "getsHit", "false"set style of obj to rectset name of obj to ""set width of obj to 120set height of obj to 20set loc of obj to loc of bg fld "dialogRect"set textFont of obj to Chicagoset textHeight of obj to 18set lockText of obj to truechoose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextEdit Text ToolThis button allows you to create a new editable text area for the dialog box that you are designing. You will be asked for the text which will appear as a default when the dialog is first presented to the user. You may leave this blank if desired.If you want to change the height of the editable text area, you must be careful. The text will "jump" when edited unless you set the height to 6 + (16 * #of lines) (ie 22 = 1 line high, 38 = 2 lines high, 54 = 3 lines high, etc.). A newly created editable text area is the correct height for 1 line.In addition to the built-in editable text facilities of the Dialog Manager, Dialoger also supports other styles of editable text items. While not as extensive as HyperCard's they offer a valuable addition to the Dialog Manager's own.Plain is a normal editable text item. It uses the facilities built into the Dialog Manger and is the most straight-forward. It does have a limitation: the text always appears in the default font for the dialog ‚Äî normally Chicago.Rectangle and Scrolling support text of any style to be entered. Using the Text button, you may control the font, size, style ‚Äî even alignment and lineheight of the text entered into the item. While more flexible than Plain text, there is a slight penalty in performance and memory for these features.Protected masks entry into the text item by displaying symbols rather than actual characters as they are typed. This feature is handy for requesting passwords or other secure information.</script>
  228.     </part>
  229.     <part>
  230.         <id>9</id>
  231.         <type>button</type>
  232.         <visible> <false /> </visible>
  233.         <reserved5> 0 </reserved5>
  234.         <reserved4> 0 </reserved4>
  235.         <reserved3> 0 </reserved3>
  236.         <reserved2> 0 </reserved2>
  237.         <reserved1> 0 </reserved1>
  238.         <enabled> <true /> </enabled>
  239.         <rect>
  240.             <left>457</left>
  241.             <top>99</top>
  242.             <right>483</right>
  243.             <bottom>124</bottom>
  244.         </rect>
  245.         <style>rectangle</style>
  246.         <showName> <false /> </showName>
  247.         <highlight> <false /> </highlight>
  248.         <autoHighlight> <true /> </autoHighlight>
  249.         <sharedHighlight> <true /> </sharedHighlight>
  250.         <family>0</family>
  251.         <titleWidth>0</titleWidth>
  252.         <icon>26168</icon>
  253.         <textAlign>center</textAlign>
  254.         <font>Chicago</font>
  255.         <textSize>12</textSize>
  256.         <textStyle>plain</textStyle>
  257.         <name>ICON Tool</name>
  258.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Button"put number of cd btns into btnNoput "cd btn id"&&(id of cd btn btnNo) into objputIntoScript obj, "iType", "icon"putIntoScript obj, "getsHit", "false"set style of obj to opaqueset name of obj to "0"set showName of obj to falseset width of obj to 32set height of obj to 32set loc of obj to loc of bg fld "dialogRect"choose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextIcon ToolThis button allows you to create a new icon item for the dialog box that you are designing. You will be presented with a list of icons from which to pick. This list is composed of all the icons in this stack. Once you have selected the desired icon (its name and ID appear below the list), click OK. The new icon item created.To select an icon from another stack, click on the Open‚Ķ button and then select the stack. The icons in that stack will now appear in the list. Once an icon has been chosen, it will be copied into the Dialog Maker stack.You may also turn a piece of the card into an icon using the dialog's New button or delete an existing icon using the Delete button.</script>
  259.     </part>
  260.     <part>
  261.         <id>12</id>
  262.         <type>button</type>
  263.         <visible> <false /> </visible>
  264.         <reserved5> 0 </reserved5>
  265.         <reserved4> 0 </reserved4>
  266.         <reserved3> 0 </reserved3>
  267.         <reserved2> 0 </reserved2>
  268.         <reserved1> 0 </reserved1>
  269.         <enabled> <true /> </enabled>
  270.         <rect>
  271.             <left>485</left>
  272.             <top>151</top>
  273.             <right>511</right>
  274.             <bottom>176</bottom>
  275.         </rect>
  276.         <style>rectangle</style>
  277.         <showName> <false /> </showName>
  278.         <highlight> <false /> </highlight>
  279.         <autoHighlight> <true /> </autoHighlight>
  280.         <sharedHighlight> <true /> </sharedHighlight>
  281.         <family>0</family>
  282.         <titleWidth>0</titleWidth>
  283.         <icon>10114</icon>
  284.         <textAlign>center</textAlign>
  285.         <font>Chicago</font>
  286.         <textSize>12</textSize>
  287.         <textStyle>plain</textStyle>
  288.         <name>List</name>
  289.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Field"put number of cd flds into fldNoput "cd fld id"&&(id of cd fld fldNo) into objputIntoScript obj, "iType", "user"putIntoScript obj, "uType", "list"putIntoScript obj, "getsHit", "true"set style of obj to scrollingset name of obj to ""set width of obj to 160set height of obj to 67set loc of obj to loc of bg fld "dialogRect"set textFont of obj to Chicagoset textHeight of obj to 16set lockText of obj to truechoose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextuserList ToolThis button allows you to create a new list item for the dialog box that you are designing. If you enter in the correct contents for the list, the Install button will be able to generate the proper script for creating the dialog.To change the contents of a list, double-click on the field. The Text Style button allows you to change the font and size of the text in which the list will appear. Alignment and styles do not apply. Likewise, you should not change the textHeight of the text, however, since it isset to the way it will be displayed in the dialog... making  changes will only may the card look different that the dialog.If you are using Dialog Maker to design dialogs which will not be displayed by dialoger, you cannot use these items since they are an invention of Dialoger and have no meaning elsewhere.</script>
  290.     </part>
  291.     <part>
  292.         <id>13</id>
  293.         <type>button</type>
  294.         <visible> <false /> </visible>
  295.         <reserved5> 0 </reserved5>
  296.         <reserved4> 0 </reserved4>
  297.         <reserved3> 0 </reserved3>
  298.         <reserved2> 0 </reserved2>
  299.         <reserved1> 0 </reserved1>
  300.         <enabled> <true /> </enabled>
  301.         <rect>
  302.             <left>457</left>
  303.             <top>151</top>
  304.             <right>483</right>
  305.             <bottom>176</bottom>
  306.         </rect>
  307.         <style>rectangle</style>
  308.         <showName> <false /> </showName>
  309.         <highlight> <false /> </highlight>
  310.         <autoHighlight> <true /> </autoHighlight>
  311.         <sharedHighlight> <true /> </sharedHighlight>
  312.         <family>0</family>
  313.         <titleWidth>0</titleWidth>
  314.         <icon>28819</icon>
  315.         <textAlign>center</textAlign>
  316.         <font>Chicago</font>
  317.         <textSize>12</textSize>
  318.         <textStyle>plain</textStyle>
  319.         <name>PopUp</name>
  320.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Field"put number of cd flds into fldNoput "cd fld id"&&(id of cd fld fldNo) into objputIntoScript obj, "iType", "user"putIntoScript obj, "uType", "pop"putIntoScript obj, "getsHit", "true"set style of obj to shadowset name of obj to ""set width of obj to 80set height of obj to 18set loc of obj to loc of bg fld "dialogRect"set lockText of obj to truechoose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextuserPop ToolThis button allows you to create a new popUp menu item for the dialog box that you are designing. If you enter in the correct contents for the popup, the Install button will be able to generate the proper script for creating the dialog.To change the contents of a popUp, double-click on the field.PopUps may only be in Chicago 12ptIf you are using Dialog Maker to design dialogs which will not be displayed by dialoger, you cannot use these items since they are an invention ofDialoger and have no meaning elsewhere.</script>
  321.     </part>
  322.     <part>
  323.         <id>14</id>
  324.         <type>button</type>
  325.         <visible> <false /> </visible>
  326.         <reserved5> 0 </reserved5>
  327.         <reserved4> 0 </reserved4>
  328.         <reserved3> 0 </reserved3>
  329.         <reserved2> 0 </reserved2>
  330.         <reserved1> 0 </reserved1>
  331.         <enabled> <true /> </enabled>
  332.         <rect>
  333.             <left>485</left>
  334.             <top>125</top>
  335.             <right>511</right>
  336.             <bottom>150</bottom>
  337.         </rect>
  338.         <style>rectangle</style>
  339.         <showName> <false /> </showName>
  340.         <highlight> <false /> </highlight>
  341.         <autoHighlight> <true /> </autoHighlight>
  342.         <sharedHighlight> <true /> </sharedHighlight>
  343.         <family>0</family>
  344.         <titleWidth>0</titleWidth>
  345.         <icon>16487</icon>
  346.         <textAlign>center</textAlign>
  347.         <font>Chicago</font>
  348.         <textSize>12</textSize>
  349.         <textStyle>plain</textStyle>
  350.         <name>Box</name>
  351.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Field"put number of cd flds into fldNoput "cd fld id"&&(id of cd fld fldNo) into objrepeat (fldNo - 1) + (number of cd btns) timesdoMenu "send farther"end repeatputIntoScript obj, "iType", "user"putIntoScript obj, "uType", "box"putIntoScript obj, "getsHit", "false"set style of obj to rectset name of obj to ""set width of obj to 100set height of obj to 40set loc of obj to loc of bg fld "dialogRect"set lockText of obj to truechoose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextuserBox ToolThis button allows you to create a box for the dialog box that you are designing. While you have great control over how the box will be displayed in the dialog (pen pattern, fill pattern, etc.‚Ķ), these adjustments will not be readily apparent until you Show the actual dialog ‚Äî HyperCard is incapable of displaying such niceties.Double-click on item to edit it; use Position button to precisely position the item. Like the various patterns and modes, the title will not appear until you Show the dialog.If you are using Dialog Maker to design dialogs which will not be displayed by dialoger, you should use these items to represent the "user areas" in the dialogs.Like pictures, boxes may also be split into a grid of buttons. Since they have no graphic image, they are most often placed over* another graphic (most likely a picture) to make the image come alive! Similar to using picture buttons, this capability is provided so that a portion of a picture may be divided into buttons.To access this capability, click on "Receives ‚ÄúHits‚Äù‚Ķ" in the item specifications dialog. Another dialog is presented which allows you to determine how many buttons the box should be split into. Notice that only one selection logics is supported: push button logic. This is due to limitations of the Dialog Manager. If you need Radio Button Logic, use a picture button instead.Note: The box must appear before the graphic in the item list or it will never "see" any clicks upon it.</script>
  352.     </part>
  353.     <part>
  354.         <id>15</id>
  355.         <type>button</type>
  356.         <visible> <false /> </visible>
  357.         <reserved5> 0 </reserved5>
  358.         <reserved4> 0 </reserved4>
  359.         <reserved3> 0 </reserved3>
  360.         <reserved2> 0 </reserved2>
  361.         <reserved1> 0 </reserved1>
  362.         <enabled> <true /> </enabled>
  363.         <rect>
  364.             <left>457</left>
  365.             <top>125</top>
  366.             <right>483</right>
  367.             <bottom>150</bottom>
  368.         </rect>
  369.         <style>rectangle</style>
  370.         <showName> <false /> </showName>
  371.         <highlight> <false /> </highlight>
  372.         <autoHighlight> <true /> </autoHighlight>
  373.         <sharedHighlight> <true /> </sharedHighlight>
  374.         <family>0</family>
  375.         <titleWidth>0</titleWidth>
  376.         <icon>29457</icon>
  377.         <textAlign>center</textAlign>
  378.         <font>Chicago</font>
  379.         <textSize>12</textSize>
  380.         <textStyle>plain</textStyle>
  381.         <name>Text</name>
  382.         <script>on mouseDownend mouseDownon mouseUpanswer "This dialog item is no longer used. Instead, use static text"¬¨&&"and click on ‚ÄúStyled‚Ķ‚Äù"exit mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Field"put number of cd flds into fldNoput "cd fld id"&&(id of cd fld fldNo) into objputIntoScript obj, "iType", "user"putIntoScript obj, "uType", "text"putIntoScript obj, "getsHit", "false"set style of obj to opaqueset name of obj to ""set width of obj to 120set height of obj to 40set loc of obj to loc of bg fld "dialogRect"set textFont of obj to Chicagoset textHeight of obj to 16set lockText of obj to truechoose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextuserText Tool________________________________________¬†¬†¬†¬†¬†¬†THIS TOOL IS NO LONGER USED________________________________________This tool had been used to create a special kind of user item which allowed styled text to be displayed in a dialog.The current version of Dialoger does not use this tool as the static text item has been enhanced to accomodate these capabilities.So, rather than using this, click on the static text tool, and then use the Text button to specify the text styles you want.</script>
  383.     </part>
  384.     <part>
  385.         <id>20</id>
  386.         <type>field</type>
  387.         <visible> <true /> </visible>
  388.         <dontWrap> <false /> </dontWrap>
  389.         <dontSearch> <false /> </dontSearch>
  390.         <sharedText> <false /> </sharedText>
  391.         <fixedLineHeight> <true /> </fixedLineHeight>
  392.         <autoTab> <false /> </autoTab>
  393.         <lockText> <false /> </lockText>
  394.         <rect>
  395.             <left>123</left>
  396.             <top>2</top>
  397.             <right>353</right>
  398.             <bottom>20</bottom>
  399.         </rect>
  400.         <style>transparent</style>
  401.         <autoSelect> <false /> </autoSelect>
  402.         <showLines> <false /> </showLines>
  403.         <wideMargins> <false /> </wideMargins>
  404.         <multipleLines> <false /> </multipleLines>
  405.         <reservedFamily> 0 </reservedFamily>
  406.         <titleWidth>0</titleWidth>
  407.         <icon>0</icon>
  408.         <textAlign>left</textAlign>
  409.         <font>Chicago</font>
  410.         <textSize>12</textSize>
  411.         <textStyle>plain</textStyle>
  412.         <textHeight>16</textHeight>
  413.         <name>DialogName</name>
  414.         <script>on closeFieldglobal dirtyput true into dirtydelete line 2 to 999 of bg fld dialogNameend closeFieldon mouseUpglobal helpFlagif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifend mouseUp-- HelpTextDialog NameThis is the name of the dialog. It may be changed when making thedialog or by simply typing in a new name.</script>
  415.     </part>
  416.     <part>
  417.         <id>23</id>
  418.         <type>button</type>
  419.         <visible> <false /> </visible>
  420.         <reserved5> 0 </reserved5>
  421.         <reserved4> 0 </reserved4>
  422.         <reserved3> 0 </reserved3>
  423.         <reserved2> 0 </reserved2>
  424.         <reserved1> 0 </reserved1>
  425.         <enabled> <true /> </enabled>
  426.         <rect>
  427.             <left>485</left>
  428.             <top>99</top>
  429.             <right>511</right>
  430.             <bottom>124</bottom>
  431.         </rect>
  432.         <style>rectangle</style>
  433.         <showName> <false /> </showName>
  434.         <highlight> <false /> </highlight>
  435.         <autoHighlight> <true /> </autoHighlight>
  436.         <sharedHighlight> <true /> </sharedHighlight>
  437.         <family>0</family>
  438.         <titleWidth>0</titleWidth>
  439.         <icon>11708</icon>
  440.         <textAlign>center</textAlign>
  441.         <font>Chicago</font>
  442.         <textSize>12</textSize>
  443.         <textStyle>plain</textStyle>
  444.         <name>PICT tool</name>
  445.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Button"put number of cd btns into btnNoput "cd btn id"&&(id of cd btn btnNo) into objputIntoScript obj, "iType", "pict"putIntoScript obj, "getsHit", "false"set style of obj to rectset name of obj to "0"set showName of obj to falseset width of obj to 64set height of obj to 64set loc of obj to loc of bg fld "dialogRect"set script of obj to "on mouseUp"&return&"showPict"¬¨&return&"end mouseUp"&return&return&"on mouseDown"&return&"showPict"¬¨&return&"pass mouseDown"&return&"end mouseDown"choose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextPicture ToolThis button allows you to create a new picture item for the dialog box that you are designing. You will be presented with a list composed of all the PICTs in this stack. To select a PICT from another stack, click on the Open‚Ķ button and then select the stack. Once you have selected the desired PICT (its name and ID appear below the list), click OK. The PICT will be copied into this stack if necessary and the new picture item created. You may also turn a piece of the card into a new picture using the dialog's New button or delete an existing one using the Delete buttonWhile you may alter the size of the PICT, be aware that doing so will cause the image to be distorted.Normally, picture items appear only as white boxes. To see the actual PICT displayed, simply click on it.To access this capability, click on "Receives ‚ÄúHits‚Äù‚Ķ" in the item specifications dialog. Another dialog is presented which allows you to determine how many buttons the picture should be split into. Also, two selection logics are supported: 1) push button logic (button does not remain selected after clicking on it), and 2) radio button logic (the button remains selected).</script>
  446.     </part>
  447.     <part>
  448.         <id>25</id>
  449.         <type>button</type>
  450.         <visible> <false /> </visible>
  451.         <reserved5> 0 </reserved5>
  452.         <reserved4> 0 </reserved4>
  453.         <reserved3> 0 </reserved3>
  454.         <reserved2> 0 </reserved2>
  455.         <reserved1> 0 </reserved1>
  456.         <enabled> <true /> </enabled>
  457.         <rect>
  458.             <left>459</left>
  459.             <top>202</top>
  460.             <right>509</right>
  461.             <bottom>220</bottom>
  462.         </rect>
  463.         <style>rectangle</style>
  464.         <showName> <true /> </showName>
  465.         <highlight> <false /> </highlight>
  466.         <autoHighlight> <true /> </autoHighlight>
  467.         <sharedHighlight> <true /> </sharedHighlight>
  468.         <family>0</family>
  469.         <titleWidth>0</titleWidth>
  470.         <icon>0</icon>
  471.         <textAlign>center</textAlign>
  472.         <font>Chicago</font>
  473.         <textSize>12</textSize>
  474.         <textStyle>plain</textStyle>
  475.         <name>Create</name>
  476.         <script>on mouseDownend mouseDownon mouseUp bypFlagmakeDialog bypFlagend mouseUpon makeDialog bypFlagglobal dirtyget number of lines in bg fld "objList"if it = 0 thenget alert("Stop", "There must be at least one item in the dialog.", "Cancel")exit to hyperCardend ifif bypFlag is not truethen if editDialog() is false then exit makeDialoglock screenunlock screenrepeat with l = 1 to number of lines in bg fld "objList"set cursor to busyput line l of bg fld "objList" into objput getFromScript(obj,"iType") into iTypeif iType is "card" thencopyPicput "pict"&return after iTypesput (rect of bg fld "dialogRect")&return after iRectsput "Clipboard"&return after iTextsput "false"&return after getsHitselseput iType & return after iTypesput getFromScript(obj,"getsHit") & return after getsHitsput (rect of obj) into oRectif iType is "edit" or (iType is "stat" and style of obj is "scrolling") thenadd 3 to item 1 of oRectadd 3 to item 2 of oRectsubtract 3 from item 3 of oRectsubtract 3 from item 4 of oRectif GetFromScript(obj,"Scroll")then subtract 16 from item 3 of oRectend ifput oRect&return after iRectsif iType is in "btn,rad,chk,pict"then put short name of obj & return after iTextselse if iType is "cntl" thenput GetFromScript(obj,"ID") into oldIDget cMaker(GetFromScript(obj,"proc")¬¨,(short name of obj)¬¨,(rect of obj)¬¨,GetFromScript(obj,"init")¬¨,GetFromScript(obj,"min")¬¨,GetFromScript(obj,"max")¬¨,GetFromScript(obj,"ID"))checkResult itputIntoScript obj,"ID",itput it & return after iTextselse if iType is "icon"then put (icon of obj) & return after iTextselse if iType is in "edit,stat"then do "put"&&obj&"&return after iTexts"else if iType is "user"then put getFromScript(obj,"uType")&return after iTextsend ifend repeatdelete last char of iTextsdelete last char of iTypedelete last char of iRectsdelete last char of getsHitsput (line 1 of bg fld "dialogName")¬¨&return&(rect of bg fld "dialogRect")¬¨&return&(line 1 of bg fld "dialogName")¬¨&return&(line 2 of bg fld "dialogRect")¬¨&return&(line 3 of bg fld "dialogRect")¬¨into dInfoget dMaker(dInfo,iTypes,iRects,iTexts,getsHits)if it contains "-108" -- HC might clean out some storage for usthen get dMaker(dInfo,iTypes,iRects,iTexts,getsHits)if first word of it is "Error:" thenget alert("Stop",it,"Cancel")exit makeDialogend ifput false into dirtywriteScriptsend makeDialogon copyPiclock screenchoose select tooldrag from (topLeft of bg fld "dialogRect") ¬¨to (bottomRight of bg fld "dialogRect") with cmdKey--  doMenu "Select"doMenu "Copy Picture"choose browse toolunlock screenend copyPicon writeScriptsput empty into theScriptput 0 into bumperput item 1 of line 5 of bg fld "DialogRect" into theHandlerget offSet(("end"&&theHandler),(script of this cd))¬¨- offSet(("on"&&theHandler),(script of this cd))¬¨+ length("end"&&theHandler)if theHandler is not empty ¬¨and ((theHandler is not in the script of this cd)¬¨or (it = item 2 of line 5 of bg fld "DialogRect")) thenput "on"&&theHandler&&"dialog, itemHit, partHit"&return into theScriptput "  -- Hit handler created on: "&the long date&return after theScriptput return & "  if itemHit = 0 then -- Initialize dialog" &return after theScriptrepeat with l = 1 to number of lines in bg fld "objList"put line l of bg fld "objList" into objget getFromScript(obj,"getsHit")if it is true thenput return&"  else if itemHit ="&&l&&"then -- "¬¨&(line l of bg fld "itemList") & return after theScriptadd 4 to bumperend ifend repeatput return&"end if" & return after theScriptput "  end"&&theHandler & return after theScriptput length(theScript) into item 2 of line 5 of bg fld "DialogRect"put (length(theScript)+bumper+5) into item 2 of line 5 of hitHandlerend ifput line 6 of bg fld "DialogRect" into theHandlerif theHandler is not empty and theHandler is not in the script of this cd thenput return& "on"&&theHandler&&"dialog, errID"¬¨&return&"-- Called for all non-fatal errors."&return after theScriptput return & "answer " &quote&"Error encountered:&&"&quote&"errID" after theScriptput return&"end"&&theHandler after theScriptend ifset script of this cd to theScript & return & return & (the script of this cd)end writeScripts-- HelpTextCreate (Dialog)The Create button transforms the HyperCard objects into a real dialog (ie the necessary DLOG and DITL resources).When clicked, you will be presented with a list of all dialog items which will be included in the new dialog with a place to enter or change the name of the dialog itself. In addition, two buttons labeled Up and Down are provided so you can change the order in which the items are listed - and hence the order in which they appear in the DITL.This order is important for a variety of reasons:> Tab order. The tab key will move from the first editable text item in the dialog item list to the last. Normally, this should correspond to the upper-left-most item to the bottom-right-most item.> Radio Buttons are grouped according to their appearance in the list. All radio buttons which appear consecutively in the list will be grouped together such that only one may be selected at a time. If you want two separate groups of radio buttons, make sure they are split by some other type of item in the list - otherwise they will be considered one large group.> Stacking order - when two item overlap, the item which receives the "hit" is the one which appears first on the list. Therefore, if you have, for example, userBox areas surrounding a group of radio buttons, the box must be listed after the radio buttons or they will never get the click which would select them.The dialog name serves as both the resource name for the DLOG resource and the title (in the case of dialogs with title bars). The popup menu allows you to select the dialog window type. (The titled + choice refers to the presence of a Go Away box).The checkbox Include Card Pic allows you to easily incorporate any graphics you have created on the card as a picture item. When checked, the card graphic will be transformed into a PICT resource and included in the list.Note: if the total area of the card graphic covers some other items, you will probably need to take the extra step of transforming the pieces into PICTs first (using PICT Maker) and then laying them out so they don't overlap.The Options button allows you to set various attributes of the dialog as a whole. You may set the way in which the dialog is being used (i.e. Modal, Modeless, Orphan, Float), the location at which the dialog is displayed, and the name of the hit handler to be used. If a hit handler is specified, a sample on will be created automatically in the card's script. This handler is used when Showing the dialog within Dialog Maker and is included in Exported buttons as well so it an ideal way to develop fully function interactive dialogs entirely within Dialog Maker.Other features such as the changing the default item, the cancel item and specifying a list which is to be key scrolled are also accessable from here.</script>
  477.     </part>
  478.     <part>
  479.         <id>26</id>
  480.         <type>button</type>
  481.         <visible> <false /> </visible>
  482.         <reserved5> 0 </reserved5>
  483.         <reserved4> 0 </reserved4>
  484.         <reserved3> 0 </reserved3>
  485.         <reserved2> 0 </reserved2>
  486.         <reserved1> 0 </reserved1>
  487.         <enabled> <true /> </enabled>
  488.         <rect>
  489.             <left>459</left>
  490.             <top>222</top>
  491.             <right>509</right>
  492.             <bottom>240</bottom>
  493.         </rect>
  494.         <style>rectangle</style>
  495.         <showName> <true /> </showName>
  496.         <highlight> <false /> </highlight>
  497.         <autoHighlight> <true /> </autoHighlight>
  498.         <sharedHighlight> <true /> </sharedHighlight>
  499.         <family>0</family>
  500.         <titleWidth>0</titleWidth>
  501.         <icon>0</icon>
  502.         <textAlign>center</textAlign>
  503.         <font>Chicago</font>
  504.         <textSize>12</textSize>
  505.         <textStyle>plain</textStyle>
  506.         <name>Show</name>
  507.         <script>on mouseDownend mouseDownon mouseUpglobal dResult, exampleWindowcheck4Dirtyset cursor to watchif first char of bg fld "DialogName" is "!" thenput return into CRput Dialoger("‚Ä¢ShowExample" & CR & "on showHit"  & CR & "modeless"¬¨& CR & "Title"&&(bg fld "DialogName")&&"Examples"¬¨, "1‚óäNoDismiss"¬¨, "2‚óäPictButton 1,1,push"¬¨, "6‚óäUserBox Gray"¬¨, "3‚óäStyledText Geneva,10,."¬¨, "4‚óäUserList Monaco,9,1" & CR & (bg fld "syntaxList")¬¨, "5‚óäStyledText Monaco,9"¬¨) into exampleWindowexit mouseUpend ifget inParm(1)if it is not emptythen put return&"1‚óä"&it into in1else put empty into in1get inParm(2)if it is not emptythen put return&"2‚óä"&it into in2else put empty into in2put dialoger(inParm(0)&in1¬¨,"Param0"&return&"Param1"&return&"Param2"&return&"Param3"&in2¬¨,inParm(3),inParm(4),inParm(5),inParm(6)¬¨,inParm(7),inParm(8),inParm(9),inParm(10),inParm(11),inParm(12)¬¨,inParm(13),inParm(14),inParm(15),inParm(16)) into dResultif first word of dResult is "error:" then boom dResultend mouseUpon showHit dialog, itemHit, partHitglobal exampleWindowif itemHit=-1 thenput empty into exampleWindowelse if itemHit = 1 thendo dContents(dialog,5)else if itemHit = 2 thensend mouseUp&&"Lockit" to bg btn "About"else if itemHit = 4 thenget dContents(dialog,4,"alt")if it is not emptythen dChanger dialog,"5‚óä"&it,"5‚óäSelect 999,999"end ifend showHit-- HelpTextShow (Dialog)This button allows you to quickly preview what the dialog will actually look like. It invokes Dialoger with the necessary parameters to display the dialog as it is represented on the card.Note: This button does not recreate the dialog. Therefore, any changes in the dialog itself (such as the position of the items) will not be reflected unless it has been recreated using the Create button above.Changes that require making dialog again include:- position of items- size of items- addition of items- deletion of items- re-ordering of items- title of checkbox, radio button or push button- text in an editable or static text itemChanges that do not require making the dialog again:- text of userText, userPop, userList- font & size of userText, userListWhen Dialog Maker believes that the card and the dialog are out of sych, it will give you the option of re-Creating the dialog first.-- ScriptEdit‚Ñ¢ Prefs:Monaco,9,84,18,260,303,586,602,0</script>
  508.     </part>
  509.     <part>
  510.         <id>31</id>
  511.         <type>button</type>
  512.         <visible> <false /> </visible>
  513.         <reserved5> 0 </reserved5>
  514.         <reserved4> 0 </reserved4>
  515.         <reserved3> 0 </reserved3>
  516.         <reserved2> 0 </reserved2>
  517.         <reserved1> 0 </reserved1>
  518.         <enabled> <true /> </enabled>
  519.         <rect>
  520.             <left>485</left>
  521.             <top>21</top>
  522.             <right>511</right>
  523.             <bottom>46</bottom>
  524.         </rect>
  525.         <style>rectangle</style>
  526.         <showName> <false /> </showName>
  527.         <highlight> <false /> </highlight>
  528.         <autoHighlight> <true /> </autoHighlight>
  529.         <sharedHighlight> <true /> </sharedHighlight>
  530.         <family>0</family>
  531.         <titleWidth>0</titleWidth>
  532.         <icon>28849</icon>
  533.         <textAlign>center</textAlign>
  534.         <font>Chicago</font>
  535.         <textSize>12</textSize>
  536.         <textStyle>plain</textStyle>
  537.         <name>Help</name>
  538.         <script>on mouseDownend mouseDown--Sample script for invoking "theHelp"--Created on Tuesday, January 30, 1990on mouseUp theLocglobal dResult, lastObjput return into CRglobal cmdDescsif cmdDescs is empty then getCmdDescput name of me into lastObjput HelpText(lastObj) into theTextput line 1 of theText into theTitledelete line 1 to 2 of theTextput empty into cmdPopif displayColors()>4 then put 3223 into thePict else put empty into thePictif theLoc is not emptythen put "0‚óäLoc"&&theLoc into placerelse put empty into placerput Dialoger("‚Ä¢theHelp" & CR & "Modeless" ¬¨& CR & "defaultItem 0" & CR & "on helpHit"¬¨& CR & "Title "&theTitle  & CR & "cancelItem 0"¬¨, placer ¬¨, "1‚óäPictButton 3,4,Push"¬¨, "2‚óäPictButton 1,4,Push"¬¨, "3‚óäPictButton 3,1,Push"¬¨, "4‚óä"&thePict¬¨, "5‚óäStyledText Geneva,9"& CR &theText¬¨, "7‚óäuserPop 0,0,FixedWidth" & CR & cmdPop¬¨, "8‚óätrue"¬¨, "11‚óäuserBox gray"¬¨) into dResultif word 1 of dResult is "Error:"then answer dResultend mouseUpon helpHit dialog, itemHit, partHitglobal lastObj,theTitleglobal cmds1,cmds2,cmds3,cmds4,cmds5,cmds6global cmds7,cmds8,cmds9,cmds10,cmds11,cmds12,cmds13,cmdDescs,theCmdsif cmdDescs is empty then getCmdDescif itemHit = 0 thenelse if itemHit = 1 thenset cursor to watchdo "put cmds"&(partHit+1)&&"into theCmds"get stripItem(theCmds,2)dChanger dialog,"2‚óäSelect 0","3‚óäSelect 0","7‚óäNew"¬¨&return&it,"7‚óäSelect 999","8‚óätrue"else if itemHit = 2 thenset cursor to watchput cmds1 into theCmdsget stripItem(theCmds,2)dChanger dialog,"1‚óäSelect 0","3‚óäSelect 0"¬¨,"7‚óäNew"&return&it,"7‚óäSelect 999","12‚óätrue"else if itemHit = 3 thenset cursor to watchput empty into theCmdsdChanger dialog,"1‚óäSelect 0","2‚óäSelect 0"¬¨, "7‚óäNew"&return,"7‚óäSelect 999","8‚óätrue"else if itemHit = 6 thenif lastObj is not empty thenget theTitle & return & return & dContents(dialog,5)--SetHelpText lastObj,itend ifelse if itemHit = 7 thenset cursor to watchget dContents(dialog,7,"alt")put item 1 of line it of theCmds into theTitleput line (item 2 of line it of theCmds) of cmdDescs into theTextput unscrunch(theText) into theTextdChanger dialog, "0‚óäTitle"&&theTitle, "9‚óätrue","5‚óä"&theTextelse if itemHit = 8 thenput HelpText(lastObj) into theTextput line 1 of theText into theTitledelete line 1 to 2 of theTextdChanger dialog,"","5‚óä"&theText, "0‚óäTitle"&&theTitle,"7‚óäSelect 999"checkResult result()else if itemHit = 9 thenget dContents(dialog,3)if it <> 0 thenanswer "There are no commands for these tools." with OKdChanger dialog,"8‚óätrue"checkResult result()end ifend ifif partHit is not 0 thenget "bg btn"&&quote&objText(itemHit, partHit)&quoteput it into lastObjput HelpText(it) into theTextput line 1 of theText into theTitledelete line 1 to 2 of theTextdChanger dialog,"","5‚óä"&theText, "0‚óäTitle"&&theTitlecheckResult result()end ifend helpHit-- HelpTextGeneral HelpLurking behind the tool palette shown at left is the bulk of the power of Dialog Maker. This palette is split into three parts.The top part is a set of a dozen tools which allow you to create dialog items on the card. Clicking on one will make the indicated dialog item.The middle part consists of operations on the Dialog as a whole.  These tools allow you import existing dialogs, create real dialog resources, show the actual dialog and finally to export the completed dialog to another stack.The final part access three additional windows: Helper ‚Äî where you are now, Objector ‚Äî a sophisticated alignment dialog, and Index ‚Äî a table of contents for dialogs in the stack.Each of the tools on the top section of the palette represents a different kind of dialog item. To add an item to the dialog you are designing, click on the appropriate tool. A new item will be created and a specifications dialog presented. With this specifications dialog you can control most aspects of an item's appearance and operation. (You can get this dialog at any time by double-clicking on the item).Once created, the item may be dragged into place. So too may it be resized in the standard HuperCard way ‚Äî by dragging any corner. In addition, each card comes with a box already in place. This box represents the whole dialog so items should be positioned within it. Like individual items, it may be dragged, resized and even double-clicked.Unlike "normal" HyperCard, which makes you switch back and forth between the "button tool" and the "field tool" to manipulate objects (buttons and fields), Dialog Maker makes it easy to manipulate them together. In most cases, working with the browse tool is just like working with the button (or field) tool ‚Äî only better.You can select multiple objects, move them together, resize them together, even delete them together using the techniques summarized on the next card. Especially handy is the ability to restrict virtually all these activities to an invisible grid. To do so, simply depress the Command Key while dragging or resizing. And, if you want to see the objects move themselves (rather than their outlines) hold down the Caps Lock Key. Other techniques are:To select an object> click on itTo add another object to the selection> shift-click on itTo remove an object from the selection> shift-click on itTo move object(s)> drag themTo resize object(s)> drag one of their cornersTo undo either of above while dragging> drag to menubarTo align (etc.‚Ķ) group of objects> double-click on selectionTo edit an object> double-click on objectTo nudge object(s) while selected> use Arrow keysTo align selected objects> use Shift + Arrow keysTo resize selected objects> use Option + Arrow keysTo align by resizing> use Shift + Option + Arrow keysTo delete object(s) while selected> use Delete key</script>
  539.     </part>
  540.     <part>
  541.         <id>36</id>
  542.         <type>field</type>
  543.         <visible> <false /> </visible>
  544.         <dontWrap> <false /> </dontWrap>
  545.         <dontSearch> <false /> </dontSearch>
  546.         <sharedText> <false /> </sharedText>
  547.         <fixedLineHeight> <true /> </fixedLineHeight>
  548.         <autoTab> <false /> </autoTab>
  549.         <lockText> <false /> </lockText>
  550.         <rect>
  551.             <left>306</left>
  552.             <top>310</top>
  553.             <right>456</right>
  554.             <bottom>342</bottom>
  555.         </rect>
  556.         <style>scrolling</style>
  557.         <autoSelect> <false /> </autoSelect>
  558.         <showLines> <false /> </showLines>
  559.         <wideMargins> <false /> </wideMargins>
  560.         <multipleLines> <false /> </multipleLines>
  561.         <reservedFamily> 0 </reservedFamily>
  562.         <titleWidth>0</titleWidth>
  563.         <icon>0</icon>
  564.         <textAlign>left</textAlign>
  565.         <font>Geneva</font>
  566.         <textSize>9</textSize>
  567.         <textStyle>plain</textStyle>
  568.         <textHeight>10</textHeight>
  569.         <name>itemList</name>
  570.         <script>on mouseUpglobal helpFlagif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifreBuildObjListend mouseUp-- HelpTextDialog Items ListThis list is for reference only. It is the list of items appearing inthe dialog.</script>
  571.     </part>
  572.     <part>
  573.         <id>37</id>
  574.         <type>button</type>
  575.         <visible> <false /> </visible>
  576.         <reserved5> 0 </reserved5>
  577.         <reserved4> 0 </reserved4>
  578.         <reserved3> 0 </reserved3>
  579.         <reserved2> 0 </reserved2>
  580.         <reserved1> 0 </reserved1>
  581.         <enabled> <true /> </enabled>
  582.         <rect>
  583.             <left>165</left>
  584.             <top>0</top>
  585.             <right>279</right>
  586.             <bottom>19</bottom>
  587.         </rect>
  588.         <style>rectangle</style>
  589.         <showName> <true /> </showName>
  590.         <highlight> <false /> </highlight>
  591.         <autoHighlight> <true /> </autoHighlight>
  592.         <sharedHighlight> <true /> </sharedHighlight>
  593.         <family>0</family>
  594.         <titleWidth>0</titleWidth>
  595.         <icon>0</icon>
  596.         <textAlign>center</textAlign>
  597.         <font>Chicago</font>
  598.         <textSize>12</textSize>
  599.         <textStyle>plain</textStyle>
  600.         <name>Display PICTs</name>
  601.         <script>on mouseUpglobal helpFlagif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifrepeat with l = 1 to number of lines in bg fld "objList"set cursor to busyput line l of bg fld "objList" into objget GetFromScript(obj,"iType")if it is "pict" thenget rect of objGetPicture (short name of obj), (item 1 of it)¬¨,(item 2 of it), (item 3 of it), (item 4 of it)end ifend repeatend mouseUp-- HelpTextDisplay PICTs  buttonThis button will find all the pictures in this dialog and display them.Note since HyperCard knows nothing about these pictures, they will goaway as soon as they are obscured by something else. To get them back,simply click on this button or click on the individual picture items.</script>
  602.     </part>
  603.     <part>
  604.         <id>41</id>
  605.         <type>button</type>
  606.         <visible> <false /> </visible>
  607.         <reserved5> 0 </reserved5>
  608.         <reserved4> 0 </reserved4>
  609.         <reserved3> 0 </reserved3>
  610.         <reserved2> 0 </reserved2>
  611.         <reserved1> 0 </reserved1>
  612.         <enabled> <true /> </enabled>
  613.         <rect>
  614.             <left>460</left>
  615.             <top>269</top>
  616.             <right>508</right>
  617.             <bottom>281</bottom>
  618.         </rect>
  619.         <style>rectangle</style>
  620.         <showName> <true /> </showName>
  621.         <highlight> <false /> </highlight>
  622.         <autoHighlight> <true /> </autoHighlight>
  623.         <sharedHighlight> <true /> </sharedHighlight>
  624.         <family>0</family>
  625.         <titleWidth>0</titleWidth>
  626.         <icon>0</icon>
  627.         <textAlign>center</textAlign>
  628.         <font>Geneva</font>
  629.         <textSize>9</textSize>
  630.         <textStyle>plain</textStyle>
  631.         <name>ICON</name>
  632.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlagif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifiMakerend mouseUpon iMakerask "Name for new ICON:"if it is not empty thenget iMaker("",it)get alert("Note", "The icon has been installed as #"&it, "OK")end ifend iMaker-- HelpTextICON MakerThis button allows you to create icons out of any part of the card.Simply click on this button, enter a name for the icon beingcreated and then position the box over the area to be transformed intoan icon. (Unlike PICT maker, the pixels under the selection box are notpart of the image)The newly created icon may be used in an icon item by selectingit from the list.Note: The icon is made up of exactly what appears on the card inarea selected; regarless of whether it is composed of buttons, icons,card art, background art, etc. - these are all "captured".</script>
  633.     </part>
  634.     <part>
  635.         <id>42</id>
  636.         <type>button</type>
  637.         <visible> <false /> </visible>
  638.         <reserved5> 0 </reserved5>
  639.         <reserved4> 0 </reserved4>
  640.         <reserved3> 0 </reserved3>
  641.         <reserved2> 0 </reserved2>
  642.         <reserved1> 0 </reserved1>
  643.         <enabled> <true /> </enabled>
  644.         <rect>
  645.             <left>460</left>
  646.             <top>297</top>
  647.             <right>508</right>
  648.             <bottom>309</bottom>
  649.         </rect>
  650.         <style>rectangle</style>
  651.         <showName> <true /> </showName>
  652.         <highlight> <false /> </highlight>
  653.         <autoHighlight> <true /> </autoHighlight>
  654.         <sharedHighlight> <true /> </sharedHighlight>
  655.         <family>0</family>
  656.         <titleWidth>0</titleWidth>
  657.         <icon>0</icon>
  658.         <textAlign>center</textAlign>
  659.         <font>Geneva</font>
  660.         <textSize>9</textSize>
  661.         <textStyle>plain</textStyle>
  662.         <name>SICN</name>
  663.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlagif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifsMakerend mouseUpon sMakerask "Name for new SICN:"if it is not empty thenget sMaker("",it)get alert("Note", "The small icon has been installed as #"&it, "OK")end ifend sMaker-- HelpTextSICN MakerThis button allows you to create small icons out of any part of thecard. Simply click on this button, enter a name for the small icon beingcreated and then position the box over the area to be transformed intoan icon. (Unlike pMaker, the pixels under the selection box are notpart of the image)The newly created small icon may be used in lists using the Meta LDEF(see help).Note: The small icon is made up of exactly what appears on the card inarea selected; regarless of whether it is composed of buttons, icons,card art, background art, etc. - these are all "captured".</script>
  664.     </part>
  665.     <part>
  666.         <id>43</id>
  667.         <type>button</type>
  668.         <visible> <false /> </visible>
  669.         <reserved5> 0 </reserved5>
  670.         <reserved4> 0 </reserved4>
  671.         <reserved3> 0 </reserved3>
  672.         <reserved2> 0 </reserved2>
  673.         <reserved1> 0 </reserved1>
  674.         <enabled> <true /> </enabled>
  675.         <rect>
  676.             <left>457</left>
  677.             <top>315</top>
  678.             <right>511</right>
  679.             <bottom>341</bottom>
  680.         </rect>
  681.         <style>opaque</style>
  682.         <showName> <false /> </showName>
  683.         <highlight> <false /> </highlight>
  684.         <autoHighlight> <true /> </autoHighlight>
  685.         <sharedHighlight> <true /> </sharedHighlight>
  686.         <family>0</family>
  687.         <titleWidth>0</titleWidth>
  688.         <icon>18389</icon>
  689.         <textAlign>center</textAlign>
  690.         <font>Chicago</font>
  691.         <textSize>12</textSize>
  692.         <textStyle>plain</textStyle>
  693.         <name>Objector</name>
  694.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlag, objSelection, anchorObjif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifglobal theScript -- to be performed for each obj selectedput bg fld "itemList" into nListput return into crput "Select card objects below and options at right."¬¨&&"Note: First object selected below will serve as the anchor"¬¨&&"for alignment operations (unless To Grid is checked)." into instructionsget Dialoger("‚Ä¢Objector"&cr&"on ObjectorHit"¬¨,"25‚óäuserBox"¬¨,""¬¨,"userPop 0,14"&cr&"Left"&cr&"Center"&cr&"Right"&cr&"(-"&cr&"None<I"¬¨,"userPop 0,15"&cr&"Top"&cr&"Center"&cr&"Bottom"&cr&"(-"&cr&"None<I"¬¨,"userPop 0,16"&cr&"Lefts"&cr&"Centers"&cr&"Rights"&cr&"(-"&cr&"None<I"¬¨,"userPop 0,17"&cr&"Tops"&cr&"Centers"&cr&"Bottoms"&cr&"(-"&cr&"None<I"¬¨,"userList Geneva,10"&cr&nList¬¨,"userText Geneva,10,."&cr&instructions)lock screenunlock screencheckResult itif line 1 of it is empty then exit mouseUpset cursor to watchput selectedObjs(line 8 of it) into oListsizeObjs oList,line 12 of it, line 13 of itpositionObjs oList,line 10 of it, line 11 of italignObjs oList,line 4 of it, line 5 of it,anchorObj,line 18 of itif line 19 of it is truethen abutObjs oList,line 6 of it, line 7 of itelse distributeObjs oList,line 6 of it, line 7 of itxScript oList, theScriptend mouseUpon xScript objectList, scriptLineif scriptLine is empty then exit xScriptrepeat with l = 1 to number of lines in objectListset cursor to busyput line l of objectList into objdo scriptLineend repeatend xScriptfunction selectedObjs selectedLinesput empty into oListif selectedLines is empty then return oListrepeat with i = 1 to number of items in selectedLinesput line (item i of selectedLines) of bg fld "objList" & return after oListend repeatdelete last char of oListreturn oListend selectedObjson sizeObjs oList,width,heightrepeat with l = 1 to number of lines in oListset cursor to busyput line l of oList into objget rect of objif width is not empty and width <> 0then put item 1 of it + width into item 3 of itif height is not empty and height <> 0then put item 2 of it + height into item 4 of itset rect of obj to itend repeatend sizeObjson positionObjs oList,dH,dVrepeat with l = 1 to number of lines in oListset cursor to busyput line l of oList into objget topLeft of objif dH is not empty and dH <> 0then add dH to item 1 of itif dV is not empty and dV <> 0then add dV to item 2 of itset TopLeft of obj to itend repeatend positionObjson AlignObjs oList,h,v,targetObj, gridFlagif targetObj is empty then exit AlignObjsif gridFlag is not true thenif h is "Left"then put left of targetObj into newHelse if h is "Center"then put item 1 of loc of targetObj into newHelse if h is "Right"then put right of targetObj into newHif v is "Top"then put top of targetObj into newVelse if v is "Center"then put item 2 of loc of targetObj into newVelse if v is "Bottom"then put bottom of targetObj into newVend ifrepeat with l = 1 to number of lines in oListset cursor to busyput line l of oList into objget loc of objif h is "Left" thenif gridFlag is truethen put trunc((left of obj) / 8)*8 into newHset left of obj to newHelse if h is "Center" thenif gridFlag is truethen put trunc((item 1 of it) / 8)*8 into newHput newH into item 1 of itset loc of obj to itelse if h is "Right" thenif gridFlag is truethen put trunc((right of obj) / 8)*8 into newHset right of obj to newHend ifif v is "Top" thenif gridFlag is truethen put trunc((top of obj) / 8)*8 into newVset top of obj to newVelse if v is "Center" thenif gridFlag is truethen put trunc((item 2 of it) / 8)*8 into newVput newV into item 2 of itset loc of obj to itelse if v is "Bottom" thenif gridFlag is truethen put trunc((bottom of obj) / 8)*8 into newVset bottom of obj to newVend ifend repeatend alignObjson distributeObjs oList,h,vglobal hList,gList,vListput oList into gListput number of lines in gList into objCntif objCnt <= 2 then exit distributeObjs-- align horizonalif h = "Lefts" then get "put (left of obj)&return after hList"else if h = "Centers" then get "put (item 1 of loc of obj)&return after hList"else if h = "Rights" then get "put (right of obj)&return after hList"else get emptyif it is not empty thenput it into cmdput empty into hListrepeat with l = 1 to number of lines in gListput line l of gList into objdo cmdend repeatdelete last char of hListCoSortInt "hList","gList"end ifput line 1 of hList into hStartput (last line of hList - line 1 of hList) / (objCnt - 1) into hSpacerepeat with l = 2 to objCnt-1set cursor to busyput line l of gList into objput round(hStart + (l-1) * hSpace) into newHget loc of objif h = "Lefts" thenset left of obj to newHelse if h = "Centers" thenput newH into item 1 of itset loc of obj to itelse if h = "Rights" thenset right of obj to newHend ifend repeat-- align verticalif v = "Tops" then get "put (top of obj)&return after vList"else if v = "Centers" then get "put (item 2 of loc of obj)&return after vList"else if v = "Bottoms" then get "put (bottom of obj)&return after vList"else get emptyif it is not empty thenput it into cmdput empty into vListrepeat with l = 1 to number of lines in gListput line l of gList into objdo cmdend repeatdelete last char of vListCoSortInt "vList","gList"end ifput line 1 of vList into vStartput (last line of vList - line 1 of vList) / (objCnt - 1) into vSpacerepeat with l = 2 to objCnt-1set cursor to busyput line l of gList into objput round(vStart + (l-1) * vSpace) into newVget loc of objif v = "Tops" thenset top of obj to newVelse if v = "Centers" thenput newV into item 2 of itset loc of obj to itelse if v = "Bottoms" thenset bottom of obj to newVend ifend repeatend distributeObjson abutObjs oList,h,vglobal hList,gList,vListput oList into gListput number of lines in gList into objCntif objCnt <= 2 then exit abutObjs--  horizonalif h = "Lefts" then get "put (left of obj)&return after hList"else if h = "Centers" then get "put (item 1 of loc of obj)&return after hList"else if h = "Rights" then get "put (right of obj)&return after hList"else get emptyif it is not empty thenput it into cmdput empty into hListrepeat with l = 1 to number of lines in gListput line l of gList into objdo cmdend repeatdelete last char of hListCoSortInt "hList","gList"if h is "Lefts" then put 1 into mLineelse if h is "Centers" then put round (objCnt/2) into mLineelse if h is "Rights" then put objCnt into mLinerepeat with l = mLine+1 to objCntset cursor to busyput line l of gList into objput line l-1 of gList into lastObjset left of obj to right of lastObjend repeatrepeat with l = mLine-1 down to 1set cursor to busyput line l of gList into objput line l+1 of gList into lastObjset right of obj to left of lastObjend repeatend if--  Verticalif v = "Tops" then get "put (top of obj)&return after vList"else if v = "Centers" then get "put (item 2 of loc of obj)&return after vList"else if v = "bottoms" then get "put (bottom of obj)&return after vList"else get emptyif it is not empty thenput it into cmdput empty into vListrepeat with l = 1 to number of lines in gListput line l of gList into objdo cmdend repeatdelete last char of vListCoSortInt "vList","gList"if v is "Tops" then put 1 into mLineelse if v is "Centers" then put round (objCnt/2) into mLineelse if v is "bottoms" then put objCnt into mLinerepeat with l = mLine+1 to objCntset cursor to busyput line l of gList into objput line l-1 of gList into lastObjset top of obj to bottom of lastObjend repeatrepeat with l = mLine-1 down to 1set cursor to busyput line l of gList into objput line l+1 of gList into lastObjset bottom of obj to top of lastObjend repeatend ifend abutObjs-- HelpTextObjector HelpThis button provides access to a powerful alignment tool which can manipulate any and all of the items in the dialog you are creating. After clicking on the button, a dialog appears with a list of dialog item on the left and a number of areas on the right.First select the items which you want to manipulate (don't forget this step!) If you had a previous selection, Objector remembers it. If you plan to align object to each other, be sure and select the one you don't want moved first.Now select the options you want:Alignment:Select from the popUp menus what part of the objects you want aligned. You may leave either (or both) blank to signify that you don't want anyalignment in that direction. For example, selecting Left from the Horizonal menu alone would cause the left-sides of all the selected objects to be aligned. If you also selected Bottom from the Vertical menu then the bottom-left corner of all the selected objects would be aligned. If you choose To Grid, then the objects will be aligned to the nearest grid line, instead of to each other.Distribute:Distribute allows you to spread a set of objects out evenly from one place to another. The "from" and "to" depend on your selections in the Horizonal and Vertical menus. For example, if you select Leftsfrom the Horizonal menu, then the left-most object selected will remain where it is, as will the right most. The remainder of the selected objects will be distributed between them suck that the distance from the left side of each to the next is the same. Likewise if you select Centers from the Horizonal menu the they would be distributed such that the distance between the center (left-right) of each to the next would be the same. If you choose Abut, then the objects are placed so that they "butt"into each other in the manner that you have specified. The choice in popUps now refers the which item should remain still while the remainderbutt into it. For example Rights would cause the right-most selected object to remain where it was and the others to butt against one-another from there.Position Change:This section allows you to change the position of the selected objects by a uniform amount. Note that the numbers you place in there are the amount to move, to the location to move to. For example, entering a Horz of 10 would move all select objects right by 10 pixels. Likewise, entering Vert of 10 would move all the selected object down by 10 pixels.Size:This section allows you to set the height and/or width of all the selected objects. Note that, unlike Position ‚àÜ above, this refers to the actual size, not a change of size. Therefore, a Width of 50 wouldmake all selected objects 50 pixels wide.Script:You may apply a single line of script to all the selected objects using this button. This can be used, for instance to change a property of all the selected objects. In the script line, refer to the object as obj. It will be translated appropriately. For example a script of "hide obj" would hide all the selected objects.</script>
  695.     </part>
  696.     <part>
  697.         <id>44</id>
  698.         <type>button</type>
  699.         <visible> <false /> </visible>
  700.         <reserved5> 0 </reserved5>
  701.         <reserved4> 0 </reserved4>
  702.         <reserved3> 0 </reserved3>
  703.         <reserved2> 0 </reserved2>
  704.         <reserved1> 0 </reserved1>
  705.         <enabled> <true /> </enabled>
  706.         <rect>
  707.             <left>459</left>
  708.             <top>242</top>
  709.             <right>509</right>
  710.             <bottom>260</bottom>
  711.         </rect>
  712.         <style>rectangle</style>
  713.         <showName> <true /> </showName>
  714.         <highlight> <false /> </highlight>
  715.         <autoHighlight> <true /> </autoHighlight>
  716.         <sharedHighlight> <true /> </sharedHighlight>
  717.         <family>0</family>
  718.         <titleWidth>0</titleWidth>
  719.         <icon>0</icon>
  720.         <textAlign>center</textAlign>
  721.         <font>Chicago</font>
  722.         <textSize>12</textSize>
  723.         <textStyle>plain</textStyle>
  724.         <name>Export</name>
  725.         <script>on mouseDownend mouseDownon mouseUpcheck4Dirtyexportend mouseUpon exportglobal rptFile, rListput DialogResources() into rListput Dialoger("‚Ä¢export2" & return & "on exportHit"¬¨,"3‚óäUserBox Gray"¬¨,"4‚óäThis dialog uses the resources listed below. "¬¨&"Those selected will be copied to the Settings file."¬¨,"5‚óäUserList Monaco,9"&return&rList¬¨,"7‚óäHide"¬¨,"6‚óäWrite Script"&return&"true") into dResultif line 1 of dResult is empty then exit exportif (line 5 of dResult is not empty) or (line 6 of dResult is true) thenanswer file "Select settings file to install dialog in:"if it is empty then exit exportput it into toFileput stackFileName() into fromFileend ifset cursor to watchif line 5 of dResult is not empty then exportDialog fromFile,toFileif line 7 of dResult is true then exportDescription rptFileif line 6 of dResult is true then makeStoreFile toFileend exporton exportDialog fromFile, toFileglobal rListrepeat with l = 1 to number of lines in rListput line l of rList into aResProgress "Copying:"&&aResProgress trunc(l/(number of lines in rList)*100)resCopyQuick fromFile,toFile,(char 1 to 4 of aRes),(char 6 to 99 of aRes)check aRes, the Resultend repeatprogress "Dismiss"end exportDialogon exportDialoger fromFile, toFileanswer "This is now done only in the Help stack."end exportDialogeron makeStoreFile toFileput (bg fld "DialogName") into dNameput buildScript(toFile) into theScript--Putting path from microphone settings file onto script fileput toFile into settingsFileput toFile into pathPullerrepeat while last char of toFile <> ":"delete last char of toFileend repeatput (bg fld "DialogName") after toFileopen file toFilewrite theScript to file toFileclose file toFile--  test for hitHandler to be builtput the script of bg fld "dialogRect" into testCheckif testCheck contains "getsHit: true" then -- test condition for making hitHandler--building hitHandler and writing to fileput (number of lines in bg fld "objList") into itemsput buildHitHandler(settingsFile, items) into hitScriptput " hit handler" after toFileopen file toFilewrite hitScript to file toFileclose file toFileend ifend makeStoreFileon check rName, msgif first word of msg is "Error:"then get alert("Stop", "Problem copying"&&rName&&"("&msg&")", "OK")else if msg is not emptythen get alert("Note", rName&&"renumbered to avoid id conflict.", "OK")end checkfunction buildScript toFileput return into CRprogress "Building script ‚Äú"&(bg fld dialogName)&"‚Äù"global listCnt,popCnt,initTextput 0 into listCntput 0 into popCntput 0 into nxtParmput bg fld "itemList" into nListput (bg fld "DialogName") into dName-- MP file header generation hereput "Settings File = " & shortFileName(toFile) & CR &¬¨"Script Name = " & dName & CR &¬¨"Command Key = " & CR &¬¨"F-Key = " & CR &¬¨"Menu = No" & CR &¬¨"Button = No" & CR &¬¨"Version = 4000" & CR &¬¨"System = Macintosh" & CR & CR ¬¨into theHeaderput "Set Variable * CR from expression" && quote & "'^M'" & quote & ¬¨CR & CR into initTextput "Remark "&quote& "Sample script created on"&&the long date & quote & ¬¨CR & CR after theHeaderput "Remark "&quote&"Items in Dialog: ‚Äú"&(bg fld "DialogName")&"‚Äù"¬¨&quote & CR into theContentsput "Remark "&quote&"-- -------------------------------"&quote&CR ¬¨after theContentsrepeat with l = 0 to (number of lines in bg fld "objList")progress "Building script ‚Äú"&(bg fld dialogName)&"‚Äù"¬¨&" "&"(item "&l&")"if l > 0 then put "Remark "&quote&l&&"‚óä"¬¨&&ChangeStr(line l of nList,quote,"'","all") & quote & CR after theContentsget inParm(l)if it is not empty thenget initListPop(it,l)put "Set Variable * pa" & nxtParm &&  "from expression" && quote ¬¨& it & quote & CR after theInvocationadd 1 to nxtParmend ifend repeatput return & "Set Variable * dResult from Expression " & quote &¬¨"MPDialogerPro(pa0," after theInvocationrepeat with l = 1 to nxtParm-1if nxtParm < 16 then put "pa" & l & "," after theInvocationend repeatdelete last char of theInvocationput ")" & quote & CR after theInvocationif nxtParm >= 16then put "Remark "&quote&"The items initialized by pa16 through pa"¬¨&nxtParm&" could not be included."&quote & CR after theInvocationput "Remark "&quote&"-- -------------------------------"&quote&CR&CR¬¨after theContentsprogress "Dismiss"return theHeader & theContents & initText & theInvocationend buildScriptfunction cleanUp thePieceput changeStr(thePiece,"'","''","All") into thePieceput changeStr(thePiece,return,"' & CR & '","All") into thePieceput changeStr(thePiece,quote,"'","All") into thePiecereturn thePieceend cleanUpfunction initListPop txt, itemNoput return into CRif itemNo = 0 then return "'"&cleanUp(txt)&"'"global listCnt,popCnt,initTextif line 1 of txt contains "userList" thenadd 1 to listCntput "List"&listCnt into vNameelse if line 1 of txt contains "userPop" thenadd 1 to popCntput "PopUp"&popCnt into vNameelse return "'"& cleanUp(txt) & "'"put "Set Variable * "&vName&" from expression" && quote & "'"¬¨& cleanUp(line 2 to 999 of txt) & "'" & quote & CR & CR after initTextreturn "'"&itemNo&"‚óä"&cleanUp(line 1 of txt)&"' & CR & vName"end initListPopon exportDescription fNameif fName is empty thenget newfilename("Report Name:")if it is empty then exit exportDescriptionput it into fNameend ifopen file fNamewrite DialogDescription() to file fNameclose file fNameend exportDescriptionfunction DialogDescriptionput "Dialog Name/Title:"&&(line 1 of bg fld "dialogName")&return into ddput "Rectangle: ("&(rect of bg fld "dialogRect") &")" & return after ddput "Window Type:"&&WindowType(line 2 of bg fld "dialogRect") & return after ddput "As of:"&&the abbr date &&"at "&&the short time & return after ddrepeat with l = 1 to number of lines in bg fld "objList"put return after ddput line l of bg fld "objList" into objput getFromScript(obj,"iType") into iTypeif iType is "user"then put "Item"&&l&&"is a User Item ("&type2nice(getFromScript(obj,"uType"))&")"&return after ddelse put "Item"&&l&&"is a"&&type2nice(iType)&return after ddif getFromScript(obj,"getsHit")="true"then put "Receives ‚ÄúHits‚Äù" & return after ddelse put "Disabled" & return after ddput "Rectangle: ("&(rect of obj)&")" & return after ddif iType is in "btn,rad,chk"then put "Label:"&&short name of obj & return after ddelse if iType is in "pict,icon"then put "Resource:"&&short name of obj & return after ddelse if iType is in "edit,stat"then put "Text: " & value(obj) & return after ddend repeatreturn ddend DialogDescriptionfunction windowType wif w = 0 then return "Standard document"else if w=1 then return "Standard dialog"else if w=2 then return "Plain box"else if w=3 then return "Shadowed box"else if w=4 then return "Document window without size box"else if w=528 then return "Palette"else if w=544 then return "Glass"else if w>=16 then return "Round corner box"end windowTypefunction buildHitHandler tofile, itemsput return into CRput (bg fld "DialogName") into dNameprogress "Building script ‚Äú"&dName & "_h" &"‚Äù"-- MP file header generation hereput "Settings File = " & shortFileName(toFile) & CR &¬¨"Script Name = " & dName & "_h" & CR &¬¨"Command Key = " & CR &¬¨"F-Key = " & CR &¬¨"Menu = No" & CR &¬¨"Button = No" & CR &¬¨"Version = 4000" & CR &¬¨"System = Macintosh" & CR & CR ¬¨into theHeaderput "Remark "&quote& "Sample script created on"&&the long date & quote & ¬¨CR & CR after theHeaderput "If Expression" && quote & "itemHit = '0'" & quote & CR into bodyput "  Remark " & quote &"Initialize Dialog" & quote & CR after bodyrepeat with i = 1 to itemsput  "Else If Expression" && quote & "itemHit = '"& i &"'" & quote & CR after bodyput "  Remark " & quote &"dialog item " & i & " has been hit" & quote & CR after bodyend repeatput "End If" after bodyprogress "Dismiss"return theHeader & bodyend buildHitHandler-- HelpTextExport (Dialog)The Export button allows you to install your hard work into Microphone documents. This installation includes all the resources needed by the dialog and may include a button whose script contains an invocation of Dialoger with the necessary parameters to display the dialog as it is represented on the card.If you choose to have a button created, it will be placed on the clipboard from which it may be pasted onto the card of your choice in the target stack. If you have created a hit handler script in the card script, this too will be included with the button and installed in th stack script the first time it is clicked.Note: Like Show, this button does not re-Create the dialog. Therefore, if any changes have been made to the dialog itself, it should be recreated first.</script>
  726.     </part>
  727.     <part>
  728.         <id>45</id>
  729.         <type>button</type>
  730.         <visible> <false /> </visible>
  731.         <reserved5> 0 </reserved5>
  732.         <reserved4> 0 </reserved4>
  733.         <reserved3> 0 </reserved3>
  734.         <reserved2> 0 </reserved2>
  735.         <reserved1> 0 </reserved1>
  736.         <enabled> <true /> </enabled>
  737.         <rect>
  738.             <left>460</left>
  739.             <top>283</top>
  740.             <right>508</right>
  741.             <bottom>295</bottom>
  742.         </rect>
  743.         <style>rectangle</style>
  744.         <showName> <true /> </showName>
  745.         <highlight> <false /> </highlight>
  746.         <autoHighlight> <true /> </autoHighlight>
  747.         <sharedHighlight> <true /> </sharedHighlight>
  748.         <family>0</family>
  749.         <titleWidth>0</titleWidth>
  750.         <icon>0</icon>
  751.         <textAlign>center</textAlign>
  752.         <font>Geneva</font>
  753.         <textSize>9</textSize>
  754.         <textStyle>plain</textStyle>
  755.         <name>PICT</name>
  756.         <script>on mouseDownend mouseDownon mouseUpglobal helpFlagif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifpMakerend mouseUpon pMakerask "Name for new PICT:"if it is not empty thenget pMaker("",it)get alert("Note", "The picture has been installed as #"&it, "OK")end ifend pMaker-- HelpTextPICT MakerThis button allows you to create PICTs out of any part of the card.Simply click on this button, enter a name for the picture beingcreated and then trace out the area to be turned into a picture(the pixels under the selection box are part of the image)Note: The picture is made up of exactly what appears on the card inarea selected; regarless of whether it is composed of buttons, icons,card art, background art, etc. - these are all "captured".The newly created picture may be used in a picture item by selectingit from the picture list.When completed, the clipboard will also contain a graphic of the areaselected. This can be handy for converting icons into card art. (Todo this without making a picture resource, you can type "pMaker()" intothe message box directly.</script>
  757.     </part>
  758.     <part>
  759.         <id>47</id>
  760.         <type>field</type>
  761.         <visible> <false /> </visible>
  762.         <dontWrap> <false /> </dontWrap>
  763.         <dontSearch> <false /> </dontSearch>
  764.         <sharedText> <false /> </sharedText>
  765.         <fixedLineHeight> <true /> </fixedLineHeight>
  766.         <autoTab> <false /> </autoTab>
  767.         <lockText> <true /> </lockText>
  768.         <rect>
  769.             <left>13</left>
  770.             <top>52</top>
  771.             <right>501</right>
  772.             <bottom>305</bottom>
  773.         </rect>
  774.         <style>scrolling</style>
  775.         <autoSelect> <false /> </autoSelect>
  776.         <showLines> <false /> </showLines>
  777.         <wideMargins> <true /> </wideMargins>
  778.         <multipleLines> <false /> </multipleLines>
  779.         <reservedFamily> 0 </reservedFamily>
  780.         <titleWidth>0</titleWidth>
  781.         <icon>0</icon>
  782.         <textAlign>left</textAlign>
  783.         <font>New York</font>
  784.         <textSize>10</textSize>
  785.         <textStyle>plain</textStyle>
  786.         <textHeight>13</textHeight>
  787.         <name>Helper</name>
  788.         <script>on mouseUpif the cmdKey is down thenset lockText of the target to not lockText of the targetexit mouseUpend ifglobal helpFlagput false into helpFlaglock screenrepeat with o = 1 to number of cd btnsshow cd btn oend repeatrepeat with o = 1 to number of cd fldsshow cd fld oend repeathide bg fld "helper"hide bg fld "instructions"hide bg fld "outline"show bg fld dialogRectshow cd pictureunlock screenend mouseUp</script>
  789.     </part>
  790.     <part>
  791.         <id>28</id>
  792.         <type>field</type>
  793.         <visible> <false /> </visible>
  794.         <dontWrap> <false /> </dontWrap>
  795.         <dontSearch> <false /> </dontSearch>
  796.         <sharedText> <false /> </sharedText>
  797.         <fixedLineHeight> <true /> </fixedLineHeight>
  798.         <autoTab> <false /> </autoTab>
  799.         <lockText> <false /> </lockText>
  800.         <rect>
  801.             <left>331</left>
  802.             <top>277</top>
  803.             <right>481</right>
  804.             <bottom>309</bottom>
  805.         </rect>
  806.         <style>scrolling</style>
  807.         <autoSelect> <false /> </autoSelect>
  808.         <showLines> <false /> </showLines>
  809.         <wideMargins> <false /> </wideMargins>
  810.         <multipleLines> <false /> </multipleLines>
  811.         <reservedFamily> 0 </reservedFamily>
  812.         <titleWidth>0</titleWidth>
  813.         <icon>0</icon>
  814.         <textAlign>left</textAlign>
  815.         <font>Geneva</font>
  816.         <textSize>9</textSize>
  817.         <textStyle>plain</textStyle>
  818.         <textHeight>10</textHeight>
  819.         <name>objList</name>
  820.         <script>on mouseUpreBuildObjListend mouseUp</script>
  821.     </part>
  822.     <part>
  823.         <id>48</id>
  824.         <type>field</type>
  825.         <visible> <true /> </visible>
  826.         <dontWrap> <false /> </dontWrap>
  827.         <dontSearch> <false /> </dontSearch>
  828.         <sharedText> <false /> </sharedText>
  829.         <fixedLineHeight> <true /> </fixedLineHeight>
  830.         <autoTab> <false /> </autoTab>
  831.         <lockText> <true /> </lockText>
  832.         <rect>
  833.             <left>124</left>
  834.             <top>83</top>
  835.             <right>388</right>
  836.             <bottom>235</bottom>
  837.         </rect>
  838.         <style>rectangle</style>
  839.         <autoSelect> <false /> </autoSelect>
  840.         <showLines> <false /> </showLines>
  841.         <wideMargins> <false /> </wideMargins>
  842.         <multipleLines> <false /> </multipleLines>
  843.         <reservedFamily> 0 </reservedFamily>
  844.         <titleWidth>0</titleWidth>
  845.         <icon>0</icon>
  846.         <textAlign>left</textAlign>
  847.         <font>Geneva</font>
  848.         <textSize>10</textSize>
  849.         <textStyle>plain</textStyle>
  850.         <textHeight>1999</textHeight>
  851.         <name>dialogRect</name>
  852.         <script>-- getsHit: true-- iType: Card</script>
  853.     </part>
  854.     <part>
  855.         <id>54</id>
  856.         <type>field</type>
  857.         <visible> <false /> </visible>
  858.         <dontWrap> <false /> </dontWrap>
  859.         <dontSearch> <false /> </dontSearch>
  860.         <sharedText> <false /> </sharedText>
  861.         <fixedLineHeight> <true /> </fixedLineHeight>
  862.         <autoTab> <false /> </autoTab>
  863.         <lockText> <true /> </lockText>
  864.         <rect>
  865.             <left>13</left>
  866.             <top>307</top>
  867.             <right>502</right>
  868.             <bottom>323</bottom>
  869.         </rect>
  870.         <style>transparent</style>
  871.         <autoSelect> <false /> </autoSelect>
  872.         <showLines> <false /> </showLines>
  873.         <wideMargins> <false /> </wideMargins>
  874.         <multipleLines> <false /> </multipleLines>
  875.         <reservedFamily> 0 </reservedFamily>
  876.         <titleWidth>0</titleWidth>
  877.         <icon>0</icon>
  878.         <textAlign>center</textAlign>
  879.         <font>Chicago</font>
  880.         <textSize>12</textSize>
  881.         <textStyle>plain</textStyle>
  882.         <textHeight>16</textHeight>
  883.         <name>Instructions</name>
  884.         <script></script>
  885.     </part>
  886.     <part>
  887.         <id>56</id>
  888.         <type>field</type>
  889.         <visible> <false /> </visible>
  890.         <dontWrap> <false /> </dontWrap>
  891.         <dontSearch> <false /> </dontSearch>
  892.         <sharedText> <false /> </sharedText>
  893.         <fixedLineHeight> <true /> </fixedLineHeight>
  894.         <autoTab> <false /> </autoTab>
  895.         <lockText> <true /> </lockText>
  896.         <rect>
  897.             <left>489</left>
  898.             <top>0</top>
  899.             <right>512</right>
  900.             <bottom>12</bottom>
  901.         </rect>
  902.         <style>transparent</style>
  903.         <autoSelect> <false /> </autoSelect>
  904.         <showLines> <false /> </showLines>
  905.         <wideMargins> <false /> </wideMargins>
  906.         <multipleLines> <false /> </multipleLines>
  907.         <reservedFamily> 0 </reservedFamily>
  908.         <titleWidth>0</titleWidth>
  909.         <icon>0</icon>
  910.         <textAlign>left</textAlign>
  911.         <font>Geneva</font>
  912.         <textSize>9</textSize>
  913.         <textStyle>plain</textStyle>
  914.         <textHeight>12</textHeight>
  915.         <name>v</name>
  916.         <script>on mouseUpdo "get "&&the targetset lockmessages to truelock screenrepeat with c = 1 to number of cdsgo to next cddo "put it into"&&the targetend repeatunlock screenset lockmessages to falseend mouseUp</script>
  917.     </part>
  918.     <part>
  919.         <id>62</id>
  920.         <type>button</type>
  921.         <visible> <false /> </visible>
  922.         <reserved5> 0 </reserved5>
  923.         <reserved4> 0 </reserved4>
  924.         <reserved3> 0 </reserved3>
  925.         <reserved2> 0 </reserved2>
  926.         <reserved1> 0 </reserved1>
  927.         <enabled> <true /> </enabled>
  928.         <rect>
  929.             <left>457</left>
  930.             <top>0</top>
  931.             <right>483</right>
  932.             <bottom>20</bottom>
  933.         </rect>
  934.         <style>rectangle</style>
  935.         <showName> <false /> </showName>
  936.         <highlight> <false /> </highlight>
  937.         <autoHighlight> <true /> </autoHighlight>
  938.         <sharedHighlight> <true /> </sharedHighlight>
  939.         <family>0</family>
  940.         <titleWidth>0</titleWidth>
  941.         <icon>4154</icon>
  942.         <textAlign>center</textAlign>
  943.         <font>Chicago</font>
  944.         <textSize>12</textSize>
  945.         <textStyle>plain</textStyle>
  946.         <name>CNTL tool</name>
  947.         <script>on mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifget preAssignedLabel()put false into expressset cursor to watchlock screenset editBkgnd to falsedoMenu "New Button"put number of cd btns into btnNoput "cd btn id"&&(id of cd btn btnNo) into objputIntoScript obj, "iType", "CNTL"putIntoScript obj, "getsHit", "True"set style of obj to rectset name of obj to "Custom Control"set showName of obj to trueset width of obj to 200set height of obj to 16set loc of obj to loc of bg fld "dialogRect"choose browse toolunlock screensend "editItem"&&"true" to objend mouseUp-- HelpTextCustom Control ToolThis button allows you to create a new custom control for the dialog box that you are designing. You may choose either one of the built-in control types or any CDEF which has been installed in the Home Stack. You will also be asked for a title of the control, its value and the range of values that are allowed. The apperance and effect of the control in the actual dialog depends on its type. On the card, however, it simply appears as a box with its title. The types included in the Dialog Maker stack are:Push Button ‚Äî identical in operation to the conventional push button item, this control differs only in its appearance. Rather than always appearing in Chicago font, it uses the dialog's default font (which may be set using the Font command). The value of a Push Button is 0 except while it is depressed ‚Äî when its one. Accordingly the min. and max. should be set to 0 and 1 respectively.Radio Button ‚Äî like the Push Button above, this version of a radio button uses the dialog's default font. The value of a Radio Button is 0 when unhilited and 1 when hilted. Accordingly the min. and max. should be set to 0 and 1 respectively. Since custom controls provide no automatic value-changing  services, you will need to use a hit handler to manage the hiliting of each button in a group.Three-way Radio Button ‚Äî This control is the same as the one above except that instead of only two states (1=true / 0=false), it also supports a third (2=maybe). This is handy in situations where the initial condition of the button is indeterminate. Since custom controls provide no automatic value-changing  services, you will need to use a hit handler to manage the hiliting of each button in a group.Note: The maybe state should only be used as an initial value, not as a result of the item having been clicked.Checkbox ‚Äî like the Radio Button above, this version of a checkbox uses the dialog's default font. The value of a checkbox is 0 when unhilited and 1 when hilted. Accordingly the min. and max. should be set to 0 and 1 respectively. Since custom controls provide no automatic value-changing  services, you will need to use a hit handler to manage the hiliting of each button.Three-way Checkbox ‚Äî This control is the same as the one above except that instead of only two states (1=true / 0=false), it also supports a third (2=maybe). This is handy in situations where the initial condition of the button is indeterminate. Since custom controls provide no automatic value-changing  services, you will need to use a hit handler to manage the hiliting of each button. (Usually by cycling through the three possible values).Scrollbar ‚Äî while the buttons mentioned above have only two values, scrollbars are more flexible. They can accomodate a full range of integer values (ie 1-2-3 but not 1.5). This means that a particular scrollbar might represent a number between 1 and 100 ‚Äî or perhaps between 97 and 423. However, since custom controls provide no automatic value-changing  services, you will need to use a hit handler to manage the scrollbar. This is not a trivial undertaking‚Ķ good luck!Note: since the thumb of the scrollbar represents the actual value, it may occupy only locations which represent an integer. This means, for example, that a scrollbar whose min is 1 and max is 3 will only have three possible locations for the thumb (far left, middle, far right). Dragging the thumb anywhere else will cause it to jump to the appropriate place.Progress Box ‚Äî this control is used for information purposes only; it cannot be set by the user. It simply fills an empty box with a pattern to indicate the degree to which an operation has been completed. It can accomodate any range of integer values but the most convenient is usually 1 to 100. This technique is often used with an orphan dialog where the value of the control is set periodically to indicate the progress of an operation. The dialog is then dismissed when the operation is completed.The progress box may be oriented either horizonally or vertically. It will be filled from either the left side or bottom accordingly. If it is exactly square, a circle will be used instead where progress is indicated by filling an increasingly large slice. The pattern used is gray unless the title of the control is exactly one of these alternative fill pattern names: (Black, dkGray, Gray, ltGray, White.)Progress Pict ‚Äî this control is used for information purposes only; it cannot be set by the user. It simply moves the specified picture to indicate the degree to which an operation has been completed. It can accomodate any range of integer values but the most convenient is usually 1 to 100. This technique is often used with an orphan dialog where the value of the control is set periodically to indicate the progress of an operation. The dialog is then dismissed when the operation is completed.The progress pict may be oriented either horizonally or vertically. It will be offset from either the left side or bottom accordingly. The picture's name or id must be specified as the title.</script>
  948.     </part>
  949.     <part>
  950.         <id>63</id>
  951.         <type>button</type>
  952.         <visible> <true /> </visible>
  953.         <reserved5> 0 </reserved5>
  954.         <reserved4> 0 </reserved4>
  955.         <reserved3> 0 </reserved3>
  956.         <reserved2> 0 </reserved2>
  957.         <reserved1> 0 </reserved1>
  958.         <enabled> <true /> </enabled>
  959.         <rect>
  960.             <left>450</left>
  961.             <top>2</top>
  962.             <right>509</right>
  963.             <bottom>19</bottom>
  964.         </rect>
  965.         <style>transparent</style>
  966.         <showName> <false /> </showName>
  967.         <highlight> <false /> </highlight>
  968.         <autoHighlight> <true /> </autoHighlight>
  969.         <sharedHighlight> <true /> </sharedHighlight>
  970.         <family>0</family>
  971.         <titleWidth>0</titleWidth>
  972.         <icon>0</icon>
  973.         <textAlign>center</textAlign>
  974.         <font>Chicago</font>
  975.         <textSize>12</textSize>
  976.         <textStyle>plain</textStyle>
  977.         <name>Tools</name>
  978.         <script>on mouseUp theLocH,theLocVglobal dResultput return into CRif theLocH is empty thenget loc of cd windowput (item 1 of it + 420) into theLocHput (item 2 of it + 70) into theLocVend ifget dContents("‚Ä¢thePalette")if it is 0 thenif displayColors()>4 then put 3223 into thePict else put empty into thePictput Dialoger("‚Ä¢thePalette" & CR & "float" & CR & "on toolHit" ¬¨& CR & "loc"&&theLocH&","&theLocV & CR & "onError palError"¬¨, "1‚óäPictButton 3,4,Push"¬¨, "2‚óäPictButton 1,4,Push"¬¨, "3‚óäPictButton 3,1,Push"¬¨, "4‚óä"&thePict ¬¨) into dResultend ifcheckresult dResultend mouseUp</script>
  979.     </part>
  980.     <part>
  981.         <id>64</id>
  982.         <type>button</type>
  983.         <visible> <false /> </visible>
  984.         <reserved5> 0 </reserved5>
  985.         <reserved4> 0 </reserved4>
  986.         <reserved3> 0 </reserved3>
  987.         <reserved2> 0 </reserved2>
  988.         <reserved1> 0 </reserved1>
  989.         <enabled> <true /> </enabled>
  990.         <rect>
  991.             <left>485</left>
  992.             <top>0</top>
  993.             <right>511</right>
  994.             <bottom>20</bottom>
  995.         </rect>
  996.         <style>rectangle</style>
  997.         <showName> <false /> </showName>
  998.         <highlight> <false /> </highlight>
  999.         <autoHighlight> <true /> </autoHighlight>
  1000.         <sharedHighlight> <true /> </sharedHighlight>
  1001.         <family>0</family>
  1002.         <titleWidth>-1</titleWidth>
  1003.         <icon>-15616</icon>
  1004.         <textAlign>center</textAlign>
  1005.         <font>Chicago</font>
  1006.         <textSize>12</textSize>
  1007.         <textStyle>plain</textStyle>
  1008.         <name>Dialog Keeper</name>
  1009.         <script>on mouseUpend mouseUp-- HelpTextDialog Keeper</script>
  1010.     </part>
  1011.     <part>
  1012.         <id>67</id>
  1013.         <type>button</type>
  1014.         <visible> <true /> </visible>
  1015.         <reserved5> 0 </reserved5>
  1016.         <reserved4> 0 </reserved4>
  1017.         <reserved3> 0 </reserved3>
  1018.         <reserved2> 0 </reserved2>
  1019.         <reserved1> 0 </reserved1>
  1020.         <enabled> <true /> </enabled>
  1021.         <rect>
  1022.             <left>373</left>
  1023.             <top>3</top>
  1024.             <right>397</right>
  1025.             <bottom>19</bottom>
  1026.         </rect>
  1027.         <style>transparent</style>
  1028.         <showName> <false /> </showName>
  1029.         <highlight> <false /> </highlight>
  1030.         <autoHighlight> <true /> </autoHighlight>
  1031.         <sharedHighlight> <true /> </sharedHighlight>
  1032.         <family>0</family>
  1033.         <titleWidth>0</titleWidth>
  1034.         <icon>0</icon>
  1035.         <textAlign>center</textAlign>
  1036.         <font>Chicago</font>
  1037.         <textSize>12</textSize>
  1038.         <textStyle>plain</textStyle>
  1039.         <name>Prev</name>
  1040.         <script>on mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifgo prevend mouseUp-- HelpTextPrevious Card ButtonThis button allows you to go to the previous card in the stack.</script>
  1041.     </part>
  1042.     <part>
  1043.         <id>68</id>
  1044.         <type>button</type>
  1045.         <visible> <true /> </visible>
  1046.         <reserved5> 0 </reserved5>
  1047.         <reserved4> 0 </reserved4>
  1048.         <reserved3> 0 </reserved3>
  1049.         <reserved2> 0 </reserved2>
  1050.         <reserved1> 0 </reserved1>
  1051.         <enabled> <true /> </enabled>
  1052.         <rect>
  1053.             <left>398</left>
  1054.             <top>3</top>
  1055.             <right>423</right>
  1056.             <bottom>19</bottom>
  1057.         </rect>
  1058.         <style>transparent</style>
  1059.         <showName> <false /> </showName>
  1060.         <highlight> <false /> </highlight>
  1061.         <autoHighlight> <true /> </autoHighlight>
  1062.         <sharedHighlight> <true /> </sharedHighlight>
  1063.         <family>0</family>
  1064.         <titleWidth>0</titleWidth>
  1065.         <icon>0</icon>
  1066.         <textAlign>center</textAlign>
  1067.         <font>Chicago</font>
  1068.         <textSize>12</textSize>
  1069.         <textStyle>plain</textStyle>
  1070.         <name>Next</name>
  1071.         <script>on mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifgo nextend mouseUp-- HelpTextNext Card ButtonThis button allows you to go to the next card in the stack.</script>
  1072.     </part>
  1073.     <part>
  1074.         <id>69</id>
  1075.         <type>button</type>
  1076.         <visible> <true /> </visible>
  1077.         <reserved5> 0 </reserved5>
  1078.         <reserved4> 0 </reserved4>
  1079.         <reserved3> 0 </reserved3>
  1080.         <reserved2> 0 </reserved2>
  1081.         <reserved1> 0 </reserved1>
  1082.         <enabled> <true /> </enabled>
  1083.         <rect>
  1084.             <left>424</left>
  1085.             <top>3</top>
  1086.             <right>448</right>
  1087.             <bottom>19</bottom>
  1088.         </rect>
  1089.         <style>transparent</style>
  1090.         <showName> <false /> </showName>
  1091.         <highlight> <false /> </highlight>
  1092.         <autoHighlight> <true /> </autoHighlight>
  1093.         <sharedHighlight> <true /> </sharedHighlight>
  1094.         <family>0</family>
  1095.         <titleWidth>0</titleWidth>
  1096.         <icon>0</icon>
  1097.         <textAlign>center</textAlign>
  1098.         <font>Chicago</font>
  1099.         <textSize>12</textSize>
  1100.         <textStyle>plain</textStyle>
  1101.         <name>Return</name>
  1102.         <script>on mouseUpglobal helpFlag, expressif helpFlag is true thenput helpText(the target) into bg fld "helper"exit mouseUpend ifpop cdend mouseUp-- HelpTextGo Back ButtonThis button allows you to go back to the card you where in before youcame here.</script>
  1103.     </part>
  1104.     <part>
  1105.         <id>77</id>
  1106.         <type>button</type>
  1107.         <visible> <false /> </visible>
  1108.         <reserved5> 0 </reserved5>
  1109.         <reserved4> 0 </reserved4>
  1110.         <reserved3> 0 </reserved3>
  1111.         <reserved2> 0 </reserved2>
  1112.         <reserved1> 0 </reserved1>
  1113.         <enabled> <true /> </enabled>
  1114.         <rect>
  1115.             <left>403</left>
  1116.             <top>28</top>
  1117.             <right>503</right>
  1118.             <bottom>50</bottom>
  1119.         </rect>
  1120.         <style>shadow</style>
  1121.         <showName> <true /> </showName>
  1122.         <highlight> <false /> </highlight>
  1123.         <autoHighlight> <true /> </autoHighlight>
  1124.         <sharedHighlight> <true /> </sharedHighlight>
  1125.         <family>0</family>
  1126.         <titleWidth>0</titleWidth>
  1127.         <icon>0</icon>
  1128.         <textAlign>center</textAlign>
  1129.         <font>Chicago</font>
  1130.         <textSize>12</textSize>
  1131.         <textStyle>plain</textStyle>
  1132.         <name>Index</name>
  1133.         <script>--Sample script for invoking "Index"--Created on Thursday, February 1, 1990on mouseUp theLocH,theLocVglobal dResultput return into CRif dContents("‚Ä¢Index") is not 0 then exit mouseUp-- --------------------------------- Items in Dialog: "Index"-- --------------------------------- 1 ‚óä Button "OK"-- 2 ‚óä List "One"-- 3 ‚óä Box (Gray pen, None fill)-- 4 ‚óä Static Text "Dialogs"-- 5 ‚óä Static Text "Items in ‚ÄúUntitled‚Äù"-- 6 ‚óä List "1‚óäPush Button "OK""-- 7 ‚óä Picture "13665"-- -------------------------------global dialogList,dWideput empty into dWideput ResNameList(stackfilename(),"DLOG") into dialogListSort lines of dialogListput line 23 to 32767 of DialogList into DialogListput "" into List2if theLocH is empty thenget loc of cd windowput (item 1 of it + 20) into theLocHput (item 2 of it + 70) into theLocVend ifput Dialoger("‚Ä¢Index" & CR & "on indexHit" & CR & "Float" ¬¨& CR & "Width 157"¬¨, "0‚óäonError errHit" ¬¨, "0‚óäLoc"&&theLocH&","&theLocV ¬¨, "2‚óäuserList Geneva,10,KeyScroll"  & CR & dialogList¬¨, "3‚óäuserBox Gray,None,Copy"¬¨, "4‚óäDialogs"¬¨, "5‚óäItems in "&quote&"Untitled"&quote&""¬¨, "6‚óäuserList Geneva,9,NoSelection"  & CR & List2¬¨, "7‚óäPictButton 3,1,Push"¬¨) into dResultif word 1 of dResult is "Error:"then answer dResultend mouseUpon indexHit dialog, iHit, pHitglobal dialogList, dWide ,resDeleteListif iHit=0 thendChanger dialog,"2‚óäSelectText"&&(bg fld "DialogName")else if iHit = 2 thenget dContents(dialog,iHit)if it is not empty thenput line it of dialogList into dNamefind dName in bg fld "DialogName"if the result is not empty then makeItemList dialog, dNameend ifelse if iHit = 7 thenif pHit = 1 then -- Newask "Name for new dialog?" with "Untitled"if it is empty then exit indexHitdoMenu "New Card"put it into bg fld "DialogName"dChanger dialog,"2‚óäAdd 1"&return&it&return&"select 1"put it & return before dialogListelse if pHit = 2 then -- Deleteput dContents(dialog,2,"alt") into theDialogif theDialog is empty then exit indexHitif bg fld "DialogName" = theDialogthen put DialogResources() into rListelse put DialogResources(theDialog) into rListif bg fld "DialogName" = theDialogthen doMenu "Delete Card"else deleteDialog(rList)else if pHit = 3 then -- Infoif dWide is not empty thendChanger dialog & return & "Width 157"put empty into dWideelseput true into dWideget dContents(dialog,2)if it is not emptythen makeItemList dialog, (line it of dialogList)dChanger dialog & return & "Width 350"end ifend ifend ifend indexHit-- HelpTextIndexThis tool displays an index or table of contents for the Dialog Maker stack. Every dialog which exists in the stack's resources is listed here (except those used within Dialog Maker itself). When you click on a dialog's name, you will be taken immediately to the card which houses its description‚Äîunless there is no such card. Below the list of dialogs there are three buttons: New, Delete and Items.New ‚Äî creates a new card on which a new dialog may be created from scratch (or an existing one imported).Delete ‚Äî deletes the selected dialog from the Dialog Maker stack (and its card as well). A list of all the resources used by the dialog is presented. Only those resources which are selected will be deleted so those shared by more than one dialog (eg PICTs) may be spared from their fate by making sure they are not selected. Note: for technical reasons, the deletion does not take place immediately, but rather, when you next leave the stack ‚Äî for any reason.Items ‚Äî expands the dialog to display a list of the items in the dialog. This list can serve as a handy reference while working on a dialog (particularly its hit handler).</script>
  1134.     </part>
  1135.     <part>
  1136.         <id>79</id>
  1137.         <type>button</type>
  1138.         <visible> <true /> </visible>
  1139.         <reserved5> 0 </reserved5>
  1140.         <reserved4> 0 </reserved4>
  1141.         <reserved3> 0 </reserved3>
  1142.         <reserved2> 0 </reserved2>
  1143.         <reserved1> 0 </reserved1>
  1144.         <enabled> <true /> </enabled>
  1145.         <rect>
  1146.             <left>3</left>
  1147.             <top>2</top>
  1148.             <right>25</right>
  1149.             <bottom>20</bottom>
  1150.         </rect>
  1151.         <style>transparent</style>
  1152.         <showName> <false /> </showName>
  1153.         <highlight> <false /> </highlight>
  1154.         <autoHighlight> <true /> </autoHighlight>
  1155.         <sharedHighlight> <true /> </sharedHighlight>
  1156.         <family>0</family>
  1157.         <titleWidth>0</titleWidth>
  1158.         <icon>0</icon>
  1159.         <textAlign>center</textAlign>
  1160.         <font>Chicago</font>
  1161.         <textSize>12</textSize>
  1162.         <textStyle>plain</textStyle>
  1163.         <name>About</name>
  1164.         <script>on mouseUp lockItglobal LPput LockIt into LPget dContents("About This Dialog")if it is 0 thenif LockIt is empty then put "UnlockText" into itget dialoger("‚Ä¢About"¬¨& return & "on aboutHit" ¬¨& return &"Title About This Dialog" ¬¨& return & "float"¬¨, "3‚óäStyledText Geneva, 9" & return & bg fld "about")if word 1 of it is "Error:" then answer itend ifend mouseUp</script>
  1165.     </part>
  1166.     <part>
  1167.         <id>80</id>
  1168.         <type>field</type>
  1169.         <visible> <false /> </visible>
  1170.         <dontWrap> <false /> </dontWrap>
  1171.         <dontSearch> <false /> </dontSearch>
  1172.         <sharedText> <false /> </sharedText>
  1173.         <fixedLineHeight> <true /> </fixedLineHeight>
  1174.         <autoTab> <false /> </autoTab>
  1175.         <lockText> <false /> </lockText>
  1176.         <rect>
  1177.             <left>123</left>
  1178.             <top>20</top>
  1179.             <right>371</right>
  1180.             <bottom>51</bottom>
  1181.         </rect>
  1182.         <style>scrolling</style>
  1183.         <autoSelect> <false /> </autoSelect>
  1184.         <showLines> <false /> </showLines>
  1185.         <wideMargins> <false /> </wideMargins>
  1186.         <multipleLines> <false /> </multipleLines>
  1187.         <reservedFamily> 0 </reservedFamily>
  1188.         <titleWidth>0</titleWidth>
  1189.         <icon>0</icon>
  1190.         <textAlign>left</textAlign>
  1191.         <font>Geneva</font>
  1192.         <textSize>9</textSize>
  1193.         <textStyle>plain</textStyle>
  1194.         <textHeight>12</textHeight>
  1195.         <name>About</name>
  1196.         <script></script>
  1197.     </part>
  1198.     <part>
  1199.         <id>30</id>
  1200.         <type>field</type>
  1201.         <visible> <false /> </visible>
  1202.         <dontWrap> <false /> </dontWrap>
  1203.         <dontSearch> <false /> </dontSearch>
  1204.         <sharedText> <false /> </sharedText>
  1205.         <fixedLineHeight> <true /> </fixedLineHeight>
  1206.         <autoTab> <false /> </autoTab>
  1207.         <lockText> <false /> </lockText>
  1208.         <rect>
  1209.             <left>0</left>
  1210.             <top>0</top>
  1211.             <right>224</right>
  1212.             <bottom>31</bottom>
  1213.         </rect>
  1214.         <style>scrolling</style>
  1215.         <autoSelect> <false /> </autoSelect>
  1216.         <showLines> <false /> </showLines>
  1217.         <wideMargins> <false /> </wideMargins>
  1218.         <multipleLines> <false /> </multipleLines>
  1219.         <reservedFamily> 0 </reservedFamily>
  1220.         <titleWidth>0</titleWidth>
  1221.         <icon>0</icon>
  1222.         <textAlign>left</textAlign>
  1223.         <font>Geneva</font>
  1224.         <textSize>9</textSize>
  1225.         <textStyle>plain</textStyle>
  1226.         <textHeight>9</textHeight>
  1227.         <name>debug</name>
  1228.         <script>-- iType: All</script>
  1229.     </part>
  1230.     <part>
  1231.         <id>81</id>
  1232.         <type>button</type>
  1233.         <visible> <true /> </visible>
  1234.         <reserved5> 0 </reserved5>
  1235.         <reserved4> 0 </reserved4>
  1236.         <reserved3> 0 </reserved3>
  1237.         <reserved2> 0 </reserved2>
  1238.         <reserved1> 0 </reserved1>
  1239.         <enabled> <true /> </enabled>
  1240.         <rect>
  1241.             <left>475</left>
  1242.             <top>330</top>
  1243.             <right>509</right>
  1244.             <bottom>341</bottom>
  1245.         </rect>
  1246.         <style>transparent</style>
  1247.         <showName> <false /> </showName>
  1248.         <highlight> <false /> </highlight>
  1249.         <autoHighlight> <true /> </autoHighlight>
  1250.         <sharedHighlight> <true /> </sharedHighlight>
  1251.         <family>0</family>
  1252.         <titleWidth>0</titleWidth>
  1253.         <icon>0</icon>
  1254.         <textAlign>center</textAlign>
  1255.         <font>Chicago</font>
  1256.         <textSize>12</textSize>
  1257.         <textStyle>plain</textStyle>
  1258.         <name>Help</name>
  1259.         <script>on mouseUphelpend mouseUp</script>
  1260.     </part>
  1261.     <part>
  1262.         <id>82</id>
  1263.         <type>button</type>
  1264.         <visible> <true /> </visible>
  1265.         <reserved5> 0 </reserved5>
  1266.         <reserved4> 0 </reserved4>
  1267.         <reserved3> 0 </reserved3>
  1268.         <reserved2> 0 </reserved2>
  1269.         <reserved1> 0 </reserved1>
  1270.         <enabled> <true /> </enabled>
  1271.         <rect>
  1272.             <left>3</left>
  1273.             <top>330</top>
  1274.             <right>37</right>
  1275.             <bottom>341</bottom>
  1276.         </rect>
  1277.         <style>transparent</style>
  1278.         <showName> <false /> </showName>
  1279.         <highlight> <false /> </highlight>
  1280.         <autoHighlight> <true /> </autoHighlight>
  1281.         <sharedHighlight> <true /> </sharedHighlight>
  1282.         <family>0</family>
  1283.         <titleWidth>0</titleWidth>
  1284.         <icon>0</icon>
  1285.         <textAlign>center</textAlign>
  1286.         <font>Chicago</font>
  1287.         <textSize>12</textSize>
  1288.         <textStyle>plain</textStyle>
  1289.         <name>Home</name>
  1290.         <script>on mouseUpgo Homeend mouseUp</script>
  1291.     </part>
  1292.     <part>
  1293.         <id>83</id>
  1294.         <type>field</type>
  1295.         <visible> <false /> </visible>
  1296.         <dontWrap> <false /> </dontWrap>
  1297.         <dontSearch> <false /> </dontSearch>
  1298.         <sharedText> <false /> </sharedText>
  1299.         <fixedLineHeight> <true /> </fixedLineHeight>
  1300.         <autoTab> <false /> </autoTab>
  1301.         <lockText> <false /> </lockText>
  1302.         <rect>
  1303.             <left>119</left>
  1304.             <top>309</top>
  1305.             <right>253</right>
  1306.             <bottom>322</bottom>
  1307.         </rect>
  1308.         <style>transparent</style>
  1309.         <autoSelect> <false /> </autoSelect>
  1310.         <showLines> <false /> </showLines>
  1311.         <wideMargins> <false /> </wideMargins>
  1312.         <multipleLines> <false /> </multipleLines>
  1313.         <reservedFamily> 0 </reservedFamily>
  1314.         <titleWidth>0</titleWidth>
  1315.         <icon>0</icon>
  1316.         <textAlign>left</textAlign>
  1317.         <font>Geneva</font>
  1318.         <textSize>12</textSize>
  1319.         <textStyle>plain</textStyle>
  1320.         <textHeight>16</textHeight>
  1321.         <name>Dirty</name>
  1322.         <script></script>
  1323.     </part>
  1324.     <part>
  1325.         <id>84</id>
  1326.         <type>field</type>
  1327.         <visible> <false /> </visible>
  1328.         <dontWrap> <false /> </dontWrap>
  1329.         <dontSearch> <false /> </dontSearch>
  1330.         <sharedText> <false /> </sharedText>
  1331.         <fixedLineHeight> <true /> </fixedLineHeight>
  1332.         <autoTab> <false /> </autoTab>
  1333.         <lockText> <false /> </lockText>
  1334.         <rect>
  1335.             <left>266</left>
  1336.             <top>296</top>
  1337.             <right>512</right>
  1338.             <bottom>327</bottom>
  1339.         </rect>
  1340.         <style>scrolling</style>
  1341.         <autoSelect> <false /> </autoSelect>
  1342.         <showLines> <false /> </showLines>
  1343.         <wideMargins> <false /> </wideMargins>
  1344.         <multipleLines> <false /> </multipleLines>
  1345.         <reservedFamily> 0 </reservedFamily>
  1346.         <titleWidth>0</titleWidth>
  1347.         <icon>0</icon>
  1348.         <textAlign>left</textAlign>
  1349.         <font>Monaco</font>
  1350.         <textSize>9</textSize>
  1351.         <textStyle>plain</textStyle>
  1352.         <textHeight>12</textHeight>
  1353.         <name>SyntaxList</name>
  1354.         <script></script>
  1355.     </part>
  1356.     <part>
  1357.         <id>86</id>
  1358.         <type>field</type>
  1359.         <visible> <false /> </visible>
  1360.         <dontWrap> <false /> </dontWrap>
  1361.         <dontSearch> <false /> </dontSearch>
  1362.         <sharedText> <false /> </sharedText>
  1363.         <fixedLineHeight> <true /> </fixedLineHeight>
  1364.         <autoTab> <false /> </autoTab>
  1365.         <lockText> <false /> </lockText>
  1366.         <rect>
  1367.             <left>0</left>
  1368.             <top>284</top>
  1369.             <right>207</right>
  1370.             <bottom>342</bottom>
  1371.         </rect>
  1372.         <style>scrolling</style>
  1373.         <autoSelect> <false /> </autoSelect>
  1374.         <showLines> <false /> </showLines>
  1375.         <wideMargins> <false /> </wideMargins>
  1376.         <multipleLines> <false /> </multipleLines>
  1377.         <reservedFamily> 0 </reservedFamily>
  1378.         <titleWidth>0</titleWidth>
  1379.         <icon>0</icon>
  1380.         <textAlign>left</textAlign>
  1381.         <font>Monaco</font>
  1382.         <textSize>9</textSize>
  1383.         <textStyle>plain</textStyle>
  1384.         <textHeight>12</textHeight>
  1385.         <name>ResourceList</name>
  1386.         <script></script>
  1387.     </part>
  1388.     <part>
  1389.         <id>91</id>
  1390.         <type>button</type>
  1391.         <visible> <true /> </visible>
  1392.         <reserved5> 0 </reserved5>
  1393.         <reserved4> 0 </reserved4>
  1394.         <reserved3> 0 </reserved3>
  1395.         <reserved2> 0 </reserved2>
  1396.         <reserved1> 0 </reserved1>
  1397.         <enabled> <true /> </enabled>
  1398.         <rect>
  1399.             <left>355</left>
  1400.             <top>2</top>
  1401.             <right>371</right>
  1402.             <bottom>20</bottom>
  1403.         </rect>
  1404.         <style>transparent</style>
  1405.         <showName> <false /> </showName>
  1406.         <highlight> <false /> </highlight>
  1407.         <autoHighlight> <false /> </autoHighlight>
  1408.         <sharedHighlight> <true /> </sharedHighlight>
  1409.         <family>0</family>
  1410.         <titleWidth>0</titleWidth>
  1411.         <icon>0</icon>
  1412.         <textAlign>center</textAlign>
  1413.         <font>Chicago</font>
  1414.         <textSize>12</textSize>
  1415.         <textStyle>plain</textStyle>
  1416.         <name>to microphone</name>
  1417.         <script>on mouseUpopen "Microphone‚Ñ¢ II"end mouseUp</script>
  1418.     </part>
  1419.     <name>dMakers</name>
  1420.     <script>on palError dialog,errIDend palErroron rescopycloseStackpass rescopyend rescopyon aboutHit dialog, iglobal LPif LP is not empty thendChanger dialog,"3‚óälocktext"put empty into aboutHitelse if i is -1 or i is 1 thenget dContents(dialog,3)if word 1 of it is not "Error:" then put it into bg fld "About"end ifend aboutHiton choiceHit dialog,iglobal objif i = 4 then set style of obj to opaqueelse if i = 5 then set style of obj to rectelse if i = 6 then set style of obj to scrollingelse if i = 7 then set style of obj to shadowend choiceHiton findHit dialog,itemHitsend "findHit"&&dialog&","&itemHit to cd id 6568end findHiton check4Dirtyglobal dirtyif dirty is not true then exit check4Dirtyget alert("Caution", "There have been changes since the last time"¬¨&&quote&(bg fld "dialogName")&quote&&"was Created."¬¨&&"Shall I re-Create it first?", "Yes", "No","Cancel")if it is "Cancel" then exit to hyperCardelse if it is "Yes" then send "mouseUp true" to bg btn "Create"end check4Dirtyon showPict objif obj is emptythen get rect of the targetelse get rect of objDisplayPict (short name of the target), itend showPicton helpHit dialog, itemHit, partHitsend "helpHit"&&dialog&","&itemHit&","&partHit to bg btn "Help"end helpHiton deleteButtonglobal express, dirtyif express is true then exit deleteButtonif word 1 of the target is not "card" then exit deleteButtonput true into dirtyput "cd btn id"&&(id of the target) into patrepeat with l = 1 to number of lines in bg fld "objList"if line l of bg fld "objList" is pat thendelete line l of bg fld "objList"delete line l of bg fld "itemList"exit repeatend ifend repeatif last char of bg fld "objList" is return thendelete last char of bg fld "objList"delete last char of bg fld "itemList"end ifend deleteButtonon deleteFieldglobal express, dirtyif express is true then exit deleteFieldif word 1 of the target is not "card" then exit deleteFieldput true into dirtyput "cd fld id"&&(id of the target) into patrepeat with l = 1 to number of lines in bg fld "objList"if line l of bg fld "objList" is pat thendelete line l of bg fld "objList"delete line l of bg fld "itemList"exit repeatend ifend repeatif last char of bg fld "objList" is return thendelete last char of bg fld "objList"delete last char of bg fld "itemList"end ifend deleteFieldon newButtonglobal express,dirtyif express is true then exit newButtonif word 1 of the target is not "card" then exit newButtonput true into dirtyget "cd btn id "&(id of the target)if bg fld "objList" is empty thenput it into bg fld "objList"put "Unknown Item" into bg fld "itemList"elseput return & it after bg fld "objList"put return & "Unknown Item" after bg fld "itemList"end ifend newButtonon newFieldglobal express, dirtyif express is true then exit newFieldif word 1 of the target is not "card" then exit newFieldput true into dirtyget "cd fld id "&(id of the target)if bg fld "objList" is empty thenput it into bg fld "objList"put "Unknown Item" into bg fld "itemList"elseput return & it after bg fld "objList"put return & "Unknown Item" after bg fld "itemList"end ifend newFieldon makeHit dialog,iglobal dList,fNameif i=0 thenput empty into fNamedChanger dialog,"5‚óäSingleSelection"else if i is 3 thenanswer file "Select file to open below:"set cursor to arrowif it is empty then exit makeHitput it into fNameput resSortedList(fName,"DLOG") into dListdChanger dialog,"5‚óäNew"&return&dList,"6‚óäDialogs in  ‚Äú"¬¨&shortFileName(fName)&"‚Äù"end ifif first word of the result is "Error:" then boom the resultend makeHiton editItem firstTimeglobal type, objif the target is "bkgnd field"&&quote&"dialogRect"&quote thenget editDialog()exit editItemend ifget word 1 to 2 of the targetif it is "card button" then put "cd btn"&&"id"&&(id of the target) into objelse if it is "card field" then put "cd fld"&&"id"&&(id of the target) into objelse exit editItemput getFromScript(obj, "iType") into typeif type is "user" then put getFromScript(obj, "uType") into typeif type is in "btn,rad,chk" then editBtn firstTimeelse if type is in "icon,pict" then editGraphicRes firstTimeelse if type is in "edit,stat" then editdText firstTimeelse if type is in "pop,list" then editList firstTimeelse if type is "box" then editBox firstTimeelse if type is "cntl" then editCNTL firstTimeelse if type is in "text" thenPutIntoScript obj,"iType","stat"editdText firstTimeend ifrepeat with l = 1 to number of lines in bg fld "objList"if line l of bg fld "objList" is obj thenput niceObj(obj) into line l of bg fld "itemList"if firstTime is true thengo this cdsend "mouseDown" to objend ifexit repeatend ifend repeatend editItemon editBtn firstTimeglobal type, obj,dirtyput true into dirtyput short name of obj into bTitleif bTitle contains " id"&&id of obj then put empty into bTitleput Dialoger("‚Ä¢btn"¬¨, "3‚óäDismiss"¬¨, "5‚óä"&bTitle¬¨, "6‚óäuserBox Gray"¬¨) into dResultif first word of dResult is "Error:" then boom dResultif line 2 of dResult is not empty thenif firstTime is true thenselect objdoMenu "clear button"choose browse toolend ifexit editBtnend ifif type <> "btn" thenput stringWidth(short name of obj,"chicago",12) into oldPixLenif oldPixLen + 20 = (width of obj) or firstTime is true thenget line 5 of dResultput stringWidth(it,"Chicago",12) into PixLenget rect of objput item 1 of it + pixLen + 20 into item 3 of itset rect of obj to itend ifend ifset name of obj to line 5 of dResultif line 3 of dResult is not empty thengo this cdPosObj objend ifend editBtnon editBox firstTimeglobal objput return into CRput "Copy" & CR &¬¨"Or" & CR &¬¨"Xor" & CR &¬¨"Bic" & CR &¬¨"(-" & CR &¬¨"NotCopy" & CR &¬¨"NotOr" & CR &¬¨"NotXor" & CR &¬¨"NotBic" into modePopput "None<I" & CR &¬¨"Black" & CR &¬¨"White" & CR &¬¨"Gray" & CR &¬¨"ltGray" & CR &¬¨"dkGray" into patPopget short name of objif it contains " id"&&id of obj then get emptyput Dialoger("‚Ä¢userBox"¬¨, "0‚óäon boxHit"¬¨, "3‚óäDismiss"¬¨, "4‚óä"&GetFromScript(obj,"getsHit")¬¨, "5‚óäTitle:"¬¨, "6‚óä"&it¬¨, "7‚óäuserBox gray"¬¨, "11‚óäuserPop" && GetFromScript(obj,"bMode") & ",10" & CR &modePop¬¨, "12‚óäuserPop" && GetFromScript(obj,"bFill") & ",9"&CR&patPop¬¨, "13‚óäuserPop" && GetFromScript(obj,"bPen") & ",8"&CR&patPop¬¨, "14‚óäuserBox gray"¬¨) into dResultif first word of dResult is "Error:" then boom dResultif line 2 of dResult is not empty thenif firstTime is true thenselect objdoMenu "clear field"choose browse toolend ifexit editBoxend ifPutIntoScript obj,"getsHit",(line 4 of dResult)Set name of obj to line 6 of dResultif line 11 of dResult is not emptythen putIntoScript obj,"bMode",(line 11 of dResult)if line 12 of dResult is not emptythen putIntoScript obj,"bFill",(line 12 of dResult)if line 13 of dResult is not emptythen putIntoScript obj,"bPen",(line 13 of dResult)if line 13 of dResult is in "black,dkGray"then set style of obj to rectelse set style of obj to opaqueif line 3 of dResult is not empty thengo this cdPosObj objend ifend editBoxon BoxHit dialog,iglobal type, obj, rType,grid,logicput return into CRif i=0 thenput getFromScript(obj,"Grid") into gridput getFromScript(obj,"Logic") into logicelse if i = 1  or i = 3 thenputIntoScript obj, "grid", gridPutIntoScript obj, "logic", logicelse if i = 15 thendChanger dialog,"4‚óätrue","11‚óäSelect 2","12‚óäSelect 1","13‚óäSelect 1"GetGrid("box")end ifif the result is not empty then boom result()end BoxHiton getGrid typeglobal logic, gridif type is "Box" then put "6‚óäinactivate" into radioableelse put empty into radioableput Dialoger("‚Ä¢Grid"¬¨, "3‚óä"&(item 1 of grid)¬¨, "4‚óä"&(item 2 of grid)¬¨, "6‚óä"&(logic = "radio")¬¨, "7‚óä"&(logic = "push")¬¨, "8‚óäuserBox gray"& return & " Selection Logic: "¬¨, "9‚óäuserBox gray"¬¨, radioable¬¨) into dResultif line 1 of dResult is "ok" thenput line 3 of dResult&","&line 4 of dResult into Gridif line 6 of dResult is truethen put "Radio" into logicelse put "Push" into logicelseput "0,0" into gridput "NA" into logicend ifend getGridon editGraphicRes firstTimeglobal type, obj, rType, dirty,resDeleteList,fNumput true into dirtyif type is "icon"then put "ICON" into rTypeelse put "PICT" into rTypeglobal rID,fNameput return into CRif firstTime is true then put false into getsHitelse put GetFromScript(obj,"getsHit") into getsHitif type is "icon" thenget resIDList(stackFileName(),"ICON")put "userList ICONs"&return&it into list1put "Icons in ‚Äú"&short name of this stack&"‚Äù" into lblelseget resIDList(stackFileName(),"PICT")put "userList PICTs"&return&it into list1put "Pictures in ‚Äú"&short name of this stack&"‚Äù" into lblend ifput Dialoger("‚Ä¢GraphicRes" & CR & "on GraphicResHit"¬¨, "0‚óäKeyScrollItem 7"¬¨, "3‚óäDismiss"¬¨, "5‚óäuserBox Gray"¬¨, "6‚óä"&getsHit ¬¨, "7‚óä"&List1¬¨, "8‚óä"&lbl¬¨, "9‚óäDismiss"¬¨, "10‚óäStyledText Geneva,9"& CR ¬¨, "11‚óäDismiss"¬¨) into dResultif fNum is not empty thencloseResFork(fNum)put empty into fNumend ifif first word of dResult is "Error:" then boom dResultif (line 2 of dResult) is not empty thenif firstTime is true thenselect objdoMenu "clear button"choose browse toolend ifexit editGraphicReselse if line 9 of dResult is not empty thenask "Name for new graphic:"if it is empty then exit editGraphicReshide objgo this cdif type is "icon"then put iMaker("",it) into rIDelse put pMaker("",it) into rIDshow objput empty into fNameelse if line 11 of dResult is not empty thenget item 1 of line 7 of dResultif it is not empty thenif Alert("Caution","Really delete this"&&rtype&&"permanently?","OK" ,"Cancel") is "OK" thenget line (it+1) of list1if fName is empty then put stackFileName() into fNameResDelete fName, rType,itif the result is not emptythen get alert("Note","("&type&&it&")"&&(the result),"OK")end ifend ifselect objdoMenu "clear button"choose browse toolexit editGraphicResend ifif rID is not empty thenget stackFileName()if (fname is not empty) and (it <> fName) thenresCopyQuick fName,it,rType,rIDif first word of the result is "Error:" then boom result()else if the result is not empty then put result() into rIDend ifif type is "pict" thenget pictRect(rID)put item 4 of it - item 2 of it into dHput item 3 of it - item 1 of it into dVget rect of objput item 2 of it + dH into item 4 of itput item 1 of it + dV into item 3 of itset rect of obj to itput obj into pObjToUpdateelse set icon of obj to rIDset name of obj to rIDend ifPutIntoScript obj,"getsHit",(line 6 of dResult)if line 3 of dResult is not empty thengo this cdposObj objend ifend editGraphicReson GraphicResHit dialog,iglobal type, obj, rType,grid,logicglobal fNum,fName,rID, resDeleteListput return into CRif i=0 thenput empty into fNumput empty into fNameput short name of obj into rIDif rID contains " id"&&id of obj then put empty into rIDput "" into txtif rID is not empty thenget rInfo("",rType,rID)if first word of it is not "Error:"then put "#"&it into txtelse put "Information unavailable" into txtend ifput getFromScript(obj,"Grid") into gridput getFromScript(obj,"Logic") into logicdChanger dialog,"7‚óäSetDblCLick 1"&return&"Keyscroll"¬¨&return&"SingleSelection"&return&"SelectText"&&rID,"9‚óäDismiss","10‚óä"&txtelse if i = 1  or i = 3 thenif fNum is not empty thencloseResFork(fNum)put empty into fNumend ifputIntoScript obj, "grid", gridPutIntoScript obj, "logic", logicput dContents(dialog,7,"alt") into rIDelse if i = 4 thenif fNum is not empty then closeResFork(fNum)answer file "Please select file below:"put it into fNameset cursor to arrowif fName is empty then exit GraphicResHitif fNum is not empty then closeResFork(fNum)put openResFork(fName) into fNumget resIDList(fName,rType)put "new"&return before itput rType&"s in ‚Äú"&shortFileName(fName)&"‚Äù" into lbldChanger dialog,"7‚óä"&it,"8‚óä"&lbl,"10‚óä","11‚óäInactivate"if the result is not empty thenboom result()end ifelse if i = 7 thenget dContents(dialog,7,"alt")if it is not empty thenget rInfo("",rType,it)if first word of it is not "Error:"then put "#"&it into txtelse put "Information unavailable" into txtelse put empty into txtdChanger dialog,"10‚óä"&txtelse if i = 12 thenif rType="PICT" thendChanger dialog,"6‚óätrue"GetGridelsedChanger dialog,"6‚óä"&(dContents(dialog,6)="false")end ifend ifif the result is not empty then boom result()end GraphicResHiton editdText firstTimeglobal obj, type, dirtyput true into dirtyif type is "stat" thenput "Text:" into lblput "Hide" into protBtnif GetFromScript(obj,"Scroll") then put 7 into theStyleelse if GetFromScript(obj,"Fancy") then put 6 into theStyleelse put 5 into theStyleelseput "Default:" into lblput empty into protBtnget GetFromScript(obj,"Prot")if it is true then put 8 into theStyleelse if GetFromScript(obj,"Scroll") then put 7 into theStyleelse if GetFromScript(obj,"Fancy") then put 6 into theStyleelse put 5 into theStyleend ifdo "get"&&objput it into theTextput Dialoger("‚Ä¢txt" & return & "on txtHit"¬¨, "3‚óädismiss"¬¨, "4‚óä"&GetFromScript(obj,"getsHit")¬¨, theStyle&"‚óäTrue"¬¨, "8‚óä"&ProtBtn¬¨, "10‚óä"&lbl¬¨, "11‚óä"&theText¬¨, "12‚óäuserBox Gray"¬¨, "13‚óäuserBox Gray"¬¨) into dResultif first word of dResult is "Error:" then boom dResultif line 2 of dResult is not empty thenif firstTime is true thenselect objdoMenu "clear field"choose browse toolend ifexit editdTextend ifput rect of obj into oldRectput empty into newStyleif line 7 of dResult is false and theStyle = 7 thensubtract 16 from item 3 of oldRectif type = "stat" thenadd 3 to item 1 of oldRectadd 3 to item 2 of oldRectsubtract 3 from item 3 of oldRectsubtract 3 from item 4 of oldRectput "opaque" into newStyleelse  put "rect" into newStyleelse if line 7 of dResult is true and theStyle <> 7 thenadd 16 to item 3 of oldRectif type = "stat" thensubtract 3 from item 1 of oldRectsubtract 3 from item 2 of oldRectadd 3 to item 3 of oldRectadd 3 to item 4 of oldRectend ifif height of obj < 48then put (item 2 of oldRect) + 48 into item 4 of oldRectput "scrolling" into newStyleend ifif (line 5 of dResult is true) and (theStyle <> 5) thenset textfont of obj to "Chicago"set textSize of obj to 12set textAlign of obj to leftset textHeight of obj to 16set textStyle of obj to plainelse if (line 5 of dResult is false) and (theStyle = 5) thenif newStyle is emptythen if type = "stat"then put "opaque" into newStyleelse put "rect" into newStyleend ifput line 11 of dResult into newTextif length(newText) > 240 thenget alert("Caution","No more than 240 characters can fit in"¬¨&" a DITL. The remainder will be clipped.")put char 1 to 240 of newText into newTextend ifif type = "stat" and (theStyle = 5) thendo "get"&&objput stringWidth(it,"chicago",12) into oldPixLenif oldPixLen + 10 = (width of obj) or firstTime is true thenput stringWidth(newText,"Chicago",12) into PixLenput item 1 of oldRect + pixLen + 10 into newRightif newRight > 512 thenput 512 into newRightput trunc(PixLen/(512-(item 1 of oldRect))+1)*16 into newHeightelse put height of obj into newHeightput newRight into item 3 of oldRectput newHeight + (item 2 of oldRect) into item 4 of oldRectend ifend ifset rect of obj to oldRectif newStyle is not emptythen set style of obj to newStyledo "put newText into"&&objPutIntoScript obj,"getsHit",(line 4 of dResult)PutIntoScript obj, "Prot",line 8 of dResultPutIntoScript obj, "Scroll",line 7 of dResultPutIntoScript obj, "Fancy",(line 5 of dResult is false)if line 3 of dResult is not empty thengo this cdposObj objend ifend editdTexton txtHit dialog,iHitglobal objif iHit = 9 thenif dContents(dialog,5) then dChanger dialog,"6‚óätrue"select objdoMenu "Text Style..."choose browse toolend ifend txtHiton editList firstTimeglobal obj, dList, typeput return into CRdo "put"&&obj&&"into List1"if type is "pop" then delete line 1 of List1put Dialoger("‚Ä¢userList" & CR & "on uListHit"¬¨, "3‚óäDismiss"¬¨, "5‚óäuserList" & CR & List1¬¨, "12‚óäuserBox Gray"¬¨, "13‚óäuserBox Gray"¬¨, "14‚óäuserBox Gray"¬¨) into dResultif first word of dResult is "Error:" then boom dResultif line 2 of dResult is not empty thenif firstTime is true thenselect objdoMenu "clear field"choose browse toolend ifexit editListend ifdo "put dList into"&&objif type is "pop" then do "put return before"&&objif line 3 of dResult is not empty thengo this cdposObj objend ifend editListon uListHit dialog,iglobal type, obj, dListif i = 0 thendChanger dialog,"","","","SingleSelection","Inactivate"¬¨, "Inactivate", "Inactivate","","Inactivate","Inactivate"checkResult result()if type = "pop" thendChanger dialog,"","","","","","","","Inactivate"checkResult result()end ifelse if i = 1 thenput dContents(dialog,5,"all") into dListelse if i = 2 thenput empty into dListelse if i = 3 thenput dContents(dialog,5,"all") into dListelse if i = 4 thenadjBtns4List dialog,ielse if i = 5 thenget dContents(dialog,5,"alt")if it is not empty thendChanger dialog,"","",it & return & "select 1,999"checkResult result()end ifadjBtns4List dialog,ielse if i = 6 thenput dContents(dialog,4) into txtput dContents(dialog,5) into lnif ln is empty then put 1000 into lndChanger dialog,"","","Select 1,9999","Add"&&ln & return & txtcheckResult result()else if i = 7 thenput dContents(dialog,4) into txtput dContents(dialog,5) into lnif ln is empty thenbeepexit uListHitend ifdChanger dialog,"","","Select 1,9999","Replace"&&ln & return & txtcheckResult result()else if i = 8 thenput dContents(dialog,4) into txtput dContents(dialog,5) into lnif ln is empty thenbeepexit uListHitend ifdChanger dialog,"","","","Delete"&&ln & return & "Select"&&lncheckResult result()get dContents(dialog,5,"alt")dChanger dialog,"","",itcheckResult result()adjBtns4List dialog,ielse if i = 9 thenselect objdoMenu "Text Style..."choose browse toolput fontHeight((textfont of obj),(textSize of obj)) into fHif fH > 0 thenset textheight of obj to fHend ifget textStyle of objif it is not "plain" thenget alert("Caution", "Text Styles may not be applied to lists","OK")set TextStyle of obj to "plain"end ifget textAlign of objif it is not "left" thenget alert("Caution", "Text must be left-aligned in lists","OK")set TextAlign of obj to "left"end ifsend "closeField" to objelse if i = 10 thenget dContents(dialog,5)if it is empty thenbeepexit uListHitend ifdChanger dialog,"","","","swap"&&it-1&","&it¬¨& return & "Deselect"&&it ¬¨& return & "Select"&&it-1checkResult result()else if i = 11 thenget dContents(dialog,5)if it is empty thenbeepexit uListHitend ifdChanger dialog,"","","","swap"&&it&","&it+1¬¨& return & "Deselect"&&it ¬¨& return & "Select"&&it+1checkResult result()end ifend uListHiton adjBtns4List dialog,iget dContents(dialog,4)if it is empty thenif dContents(dialog,5) is emptythen dChanger dialog,"","","","","Inactivate","Inactivate","Inactivate","","Inactivate","Inactivate"else dChanger dialog,"","","","","Inactivate","Inactivate","Activate","","Activate","Activate"elseif dContents(dialog,5) is emptythen dChanger dialog,"","","","","Activate"&return&"Default","Inactivate","Inactivate","","Inactivate","Inactivate"else dChanger dialog,"","","","","Activate","Activate"&return&"Default","Activate","","Activate","Activate"end ifcheckResult result()end adjBtns4Listfunction swap a,b,listif a = 0 then return listif b > number of lines in list then return listput line a of list into tput line b of list into line a of listput t into line b of listreturn listend swapfunction editDialogglobal jList, wType, iList, beenInOptionsput false into beenInOptionsif (number of lines in bg fld "itemList") ¬¨<> (number of lines in bg fld "objList") then rebuildObjListelse if (bg fld "itemList" contains "Unknown Item") thenrepeat with l = 1 to number of lines in bg fld "itemList"if line l of bg fld "itemList" is "Unknown Item" thenput niceObj(line l of bg fld "objList") ¬¨into line l of bg fld "itemList"end ifend repeatend ifput return into CRput bg fld "objList" into jListput bg fld "itemList" into iListput bg fld "itemList" into List1put "Standard" & CR &¬¨"Plain" & CR &¬¨"Shadowed" & CR &¬¨"Titled" & CR &¬¨"Titled+√è" & CR &¬¨"Resizable" & CR &¬¨"Resizable+√è" & CR &¬¨"Palette" & CR &¬¨"Tall Palette" & CR &¬¨"Glass" into PopUp1if bg fld "objList" contains "bg fld id"then put true into cdPicelse put false into cdPicput line 2 of bg fld "DialogRect" into wTypeif line 3 of bg fld "DialogRect" is true then add 1 to wTypeif line 2 of bg fld "DialogRect" is 0 then add 6 to wTypeif line 2 of bg fld "DialogRect" = 2052 or line 2 of bg fld "DialogRect" = 528 then put 8 into wTypeif line 2 of bg fld "DialogRect" is "2054" then put 9 into wTypeif line 2 of bg fld "DialogRect" is 544 then put 10 into wTypeput Dialoger("‚Ä¢itemList" & CR & "on editDialogHit"¬¨,""¬¨, (bg fld "DialogName")¬¨, "userList Geneva,9" & CR & List1¬¨, ""¬¨, ""¬¨, "userBox Gray"¬¨, "userBox Gray"¬¨, "userPop"&&wType & CR & PopUp1¬¨, cdPic¬¨, ""¬¨, ""¬¨) into dResultcheckResult dResultif line 1 of dResult <> "ok" then return falseif wType = 5 thenput 4 into line 2 of bg fld "DialogRect"put true into line 3 of bg fld "DialogRect"else if wType = 6 thenput 0 into line 2 of bg fld "DialogRect"put false into line 3 of bg fld "DialogRect"else if wType = 7 thenput 0 into line 2 of bg fld "DialogRect"put true into line 3 of bg fld "DialogRect"else if wType = 8 thenput 2052 into line 2 of bg fld "DialogRect"put true into line 3 of bg fld "DialogRect"if beenInOptions is false thenput "Float" into line 7 of bg fld "DialogRect"end ifelse if wType = 9 thenput 2054 into line 2 of bg fld "DialogRect"put true into line 3 of bg fld "DialogRect"if beenInOptions is false thenput "Float" into line 7 of bg fld "DialogRect"end ifelse if wType = 10 thenput 544 into line 2 of bg fld "DialogRect"put false into line 3 of bg fld "DialogRect"if beenInOptions is false thenput "Float" into line 7 of bg fld "DialogRect"end ifelseput wType into line 2 of bg fld "DialogRect"put false into line 3 of bg fld "DialogRect"end ifput line 3 of dResult into bg fld "dialogName"put jList into bg fld "objList"put iList into bg fld "itemList"return trueend editDialogon editDialogHit dialog, iglobal jList,iList, wTypeif i = 0 thendChanger dialog,"","select 1,32000","singleSelection"¬¨,"Inactivate","inactivate"checkResult result()else if i = 4 thenput dContents(dialog,4) into lif l is emptythen dChanger dialog,"","","","Inactivate","Inactivate"else dChanger dialog,"","","","Activate","Activate"checkResult result()else if i = 5 thenget dContents(dialog,4)if it is empty thenbeepexit editDialogHitend ifif it is 3 and (word 1 of line 3 of iList) is not "Button" thenif alert("Caution","The second item in the list should be a"¬¨&&"Cancel button. Are you sure you want to move this item up?"¬¨,"Cancel","Move It") is "Cancel" then exit editDialogHitend ifdChanger dialog,"","","swap"&&it-1&","&it¬¨& return & "Deselect"&&it ¬¨& return & "Select"&&it-1checkResult result()put swap(it-1,it,jList) into jListput swap(it-1,it,iList) into iListelse if i = 6 thenget dContents(dialog,4)if it is empty thenbeepexit editDialogHitend ifif it is 2 and (word 1 of line 3 of iList) is not "Button" thenif alert("Caution","The second item in the list should be a"¬¨&&"Cancel button. Are you sure you want to move this item down?"¬¨,"Cancel","Move It") is "Cancel" then exit editDialogHitend ifdChanger dialog,"","","swap"&&it&","&it+1¬¨& return & "Deselect"&&it ¬¨& return & "Select"&&it+1checkResult result()put swap(it,it+1,jList) into jListput swap(it,it+1,iList) into iListelse if i = 9 thenput dContents(dialog,9,"alt") into wTypeelse if i = 10 thenif dContents(dialog,10) thenput dContents(dialog,4) into ldChanger dialog,"","","deselect 1,999"&return¬¨&"add"&&l&return&type2nice("card")checkResult result()if l is not empty thenput "bg fld id 48" & return before line l of jListput niceObj("bg fld id 48") & return before line l of iListelse if jList is empty thenput "bg fld id 48" into jListput niceObj("bg fld id 48") into iListelseput return & "bg fld id 48" after jListput return & niceObj("bg fld id 48") after iListend ifelsedChanger dialog,"","","deselect 1,999"&return&"SelectText"¬¨&&niceObj("bg fld id 48")checkResult result()put dContents(dialog,4) into lif l is empty thenbeepget alert("Stop", "Can't find card graphic item","Cancel")exit editDialogHitend ifdChanger dialog,"","","delete"&&lcheckResult result()delete line l of jListdelete line l of iListif last char of jList is return then delete last char of jListif last char of iList is return then delete last char of iListend ifelse if i= 13 thendialogOptionsend ifend editDialogHiton exportHit dialog, iHitglobal rptFile,rListif iHit = 0 thendChanger dialog,"5‚óäSelect 1,999"else if iHit = 1 thenput dContents(dialog,5,"alt") into rListelse if iHit = 3 thenif dContents(dialog,3)=truethen dChanger dialog,"","","activate","activate"else dChanger dialog,"","","inactivate"&return&"false","inactivate"&return&"false"else if iHit = 7 thenif dContents(dialog,7)<>true thenput empty into rptFileelseask file "Report Name:"put it into rptFileif rptFile is empty then dChanger dialog,"7‚óäfalse"end ifend ifend exportHitfunction preAssignedLabel btnFlagif (the number of cd btns) + (the number of cd flds) = 0 thenif btnFlag is "true" then return "OK"elseget alert("Caution","The first item in the dialog should be an OK"¬¨&&"button. Are you sure you want to continue?","Cancel","Continue")if it is "cancel" then exit to HyperCardend ifelse if number of cd btns + number of cd flds = 1 thenif btnFlag is "True" then return "Cancel"elseget alert("Caution","The second item in the dialog should be a"¬¨&&"Cancel button. Are you sure you want to continue?","Cancel","Continue")if it is "cancel" then exit to HyperCardend ifend ifend preAssignedLabel-- ScriptEdit‚Ñ¢ Prefs:Monaco,9,39,2,465,588,22908,22908,0</script>
  1421. </background>
  1422.